python3

【Python数据分析】Python3操作Excel(二) 一些问题的解决与优化

倾然丶 夕夏残阳落幕 提交于 2020-03-21 18:48:29
继上一篇 【Python数据分析】Python3操作Excel-以豆瓣图书Top250为例 对豆瓣图书Top250进行爬取以后,鉴于还有一些问题没有解决,所以进行了进一步的交流讨论,这期间得到了 一只尼玛 的帮助与启发,十分感谢! 上次存在的问题如下: 1.写入不能继续的问题 2.在Python IDLE中明明输出正确的结果,写到excel中就乱码了。 上述两个问题促使我改换excel处理模块,因为据说xlwt只支持到Excel 2003,很有可能会出问题。 虽然“一只尼玛”给了一个Validate函数,可是那是针对去除Windows下文件名中非法字符的函数,跟写入excel乱码没有关系,所以还是考虑更换模块。 更换xlsxwriter模块 这次我改成xlsxwriter这个模块, https://pypi.python.org/pypi/XlsxWriter . 同样可以pip3 install xlsxwriter,自动下载安装,简便易行。一些用法样例: import xlsxwriter # Create an new Excel file and add a worksheet. workbook = xlsxwriter.Workbook('demo.xlsx') worksheet = workbook.add_worksheet() # Widen the first

Python3标准库:io文本、十进制和原始流I/O工具

我是研究僧i 提交于 2020-03-21 10:50:28
1. io文本、十进制和原始流I/O工具 io模块在解释器的内置open()之上实现了一些类来完成基于文件的输入和输出操作。这些类得到了适当的分解,从而可以针对不同的用途重新组合——例如,支持向一个网络套接字写Unicode数据。 1.1 内存中的流 StringIO提供了一种很便利的方式,可以使用文件API(如read()、write()等)处理内存中的文本。有些情况下,与其他一些字符串连接技术相比,使用StringIO构造大字符串可以提供更好的性能。内存中的流缓冲区对测试也很有用,写入磁盘上真正的文件并不会减慢测试套件的速度。 下面是使用StringIO缓冲区的一些标准例子。 import io # Writing to a buffer output = io.StringIO() output.write('This goes into the buffer. ') print('And so does this.', file=output) # Retrieve the value written print(output.getvalue()) output.close() # discard buffer memory # Initialize a read buffer input = io.StringIO('Inital value for read

Django 进阶杂记

女生的网名这么多〃 提交于 2020-03-20 09:50:18
数据导入 将文件内容导入,下面是3种方式。 # blogs.txt文件 title 1****content 1 title 2****content 2 title 3****content 3 title 4****content 4 title 5****content 5 title 6****content 6 title 7****content 7 title 8****content 8 title 9****content 9 def main (): file = open('blogs') for line in file: title ,content = line.split('****') Blogs.objects.get_or_create(title=title,content=content)#这样写会避免重复,但效率会慢些 file.close() def main(): file = open('blogs') blogList=[] for line in file: title ,content = line.split('****') blog = Blogs(title=title,content=content)#创建Blogs对象 blogList.append(blog) file.close() Blogs.objects

Python3 基础提高: 做练习题巩固语法

北城余情 提交于 2020-03-19 21:44:04
1. 输入一个字符串,例如:s = "abcd\nefgh\nijkl\nmnop" ,以\n 为分割点,对各个部分的字符进行反转,对各个部分进行反转 效果如下: vert_mirror(s) => "dcba\nhgfe\nlkji\nponm" hor_mirror(s) => "mnop\nijkl\nefgh\nabcd" 代码: s = "abcd\nefgh\nijkl\nmnop" def vert_mirror(s): ...: return '\n'.join(line[::-1] for line in s.split('\n')) # for line in s.split('n') 对字符串s,以\n为分割的分段,进行反转,然后,再join合起来 def hor_mirror(s): ...: return '\n'.join(s.split('\n')[::-1]) # 先对字符串s进行split,然后将整个字符串进行反转,然后再join合并起来 a = vert_mirror(s),hor_mirror(s) print(a) 2. 给定一个小写字符串,没有空格,将偶数索引和奇数索引的字母大写,并返回如下所示的值。索引0也会被考虑。 For example, capitalize("abcdef") = ['AbCdEf', 'aBcDeF']. 代码:

Python3中的bytes和str类型

两盒软妹~` 提交于 2020-03-19 18:23:40
Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分。文本总是 Unicode ,由 str 类型表示,二进制数据则由 bytes 类型表示。Python 3不会以任意隐式的方式混用 str 和 bytes ,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然)。 下面让我们深入分析一下二者的区别和联系。 编码发展的历史 在谈 bytes 和 str 之前,需要先说说关于编码是如何发展的。。 在计算机历史的早期,美国为代表的英语系国家主导了整个计算机行业,26个英文字母组成了多样的英语单词、语句、文章。因此,最早的字符编码规范是ASCII码,一种8位即1个字节的编码规范,它可以涵盖整个英语系的编码需要。 编码是什么?编码就是把一个字符用一个二进制来表示。我们都知道,所有的东西,不管是英文、中文还是符号等等,最终存储在磁盘上都是01010101这类东西。在计算机内部,读取和存储数据归根结底,处理的都是0和1组成的比特流。问题来了,人类看不懂这些比特流,如何让这些010101对人类变得可读呢?于是出现了字符编码,它是个翻译机,在计算机内部某个地方,透明的帮我们将比特流翻译成人类可以直接理解的文字。对于一般用户,不需要知道这个过程是什么原理,是怎么执行的。但是对于程序员却是个必须搞清楚的问题。 以

Python3画图系列——NetworkX初探

…衆ロ難τιáo~ 提交于 2020-03-19 06:11:35
NetworkX 概述 NetworkX 主要用于 创造、操作复杂网络 ,以及学习复杂网络的结构、动力学及其功能。用于分析网络结构,建立网络模型,设计新的网络算法,绘制网络等等。安装networkx看以参见 官网 。 NetworkX学习 关于networkx的学习可以参考如下网站: python复杂网络库networkx:基础 网络分析之networkx python networkx学习 案例学习 学习案例前,请先导入下面的库 import networkx as nx import matplotlib.pyplot as plt 案例1 G = nx.Graph() G.add_node(1) G.add_edge(2, 3) # G.add_edge(3, 2) print("输出全部节点:{}".format(G.nodes())) print("输出全部边:{}".format(G.edges())) print("输出全部边的数量:{}".format(G.number_of_edges())) nx.draw(G) plt.show() 输出全部节点:[1, 2, 3] 输出全部边:[(2, 3)] 输出全部边的数量:1 案例2 G = nx.DiGraph() G.add_node(1) G.add_node(2) G.add_nodes_from([3, 4,

Python3标准库:filecmp比较文件

放肆的年华 提交于 2020-03-18 17:39:29
1. filecmp比较文件 filecmp模块提供了一些函数和一个类来比较文件系统上的文件和目录。 1.1 示例数据 使用下面代码创建一组测试文件。 import os def mkfile(filename, body=None): with open(filename, 'w') as f: f.write(body or filename) return def make_example_dir(top): if not os.path.exists(top): os.mkdir(top) curdir = os.getcwd() os.chdir(top) os.mkdir('dir1') os.mkdir('dir2') mkfile('dir1/file_only_in_dir1') mkfile('dir2/file_only_in_dir2') os.mkdir('dir1/dir_only_in_dir1') os.mkdir('dir2/dir_only_in_dir2') os.mkdir('dir1/common_dir') os.mkdir('dir2/common_dir') mkfile('dir1/common_file', 'this file is the same') os.link('dir1/common_file', 'dir2

Python3 | print() 函数

╄→尐↘猪︶ㄣ 提交于 2020-03-18 16:37:05
一、知识介绍: 1、print()函数,用于打印输出; 2、语法:print(*objects,sep='',end='\n',file=sys.stdout,flish=flase)。 参数: objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。 sep -- 用来间隔多个对象,默认值是一个空格。 end -- 用来设定以什么结尾。默认值是换行符 \n, end=' ' 不换行。 file -- 要写入的文件对象。 flush -- 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。 二、运用演示: 1、 print('hello world!') #输出:hello world! 2、 print('test01''test001''test0001') #输出多个对象需没有分隔 #输出:test01test001test0001 3、 print('test01','test001','test0001') #输出多个对象需,分隔 #输出:test01 test001 test0001 4、 print('test01','test001','test0001',sep='排序:') #输出:test01排序: test001排序: test0001 5、 print('1','2','3'

Python3 | input() 函数

混江龙づ霸主 提交于 2020-03-18 13:38:15
一、知识介绍: 1、input() 函数,接收任意输入,将所有输入默认为字符串处理,并返回字符串类型; 2、可以用作文本输入,如用户名,密码框的值输入; 3、语法: input ("提示信息:" ) 。 二、运用演示: 1、接收任意输入,并返回字符串类型; >>> height = input ( "输入身高 : " ) #运行 输入身高 : 170 #输入整数170 >>> type ( a ) #type( )检查输出的数据类型 < class ' str ' > #字符串 2、想得到一个整数,只需数据类型转换就可以了: >>> a = int(input("身高:")) #int( ) 转换为整数 身高: 180 >>> type(a) <class 'int'> 三、案例分析: (- * -)完(- * -) 1、input() 函数,接收任意输入,将所有输入默认为字符串处理,并返回字符串类型; 2、可以用作文本输入,如用户名,密码框的值输入; 3、语法: input ("提示信息:" ) 。 二、运用演示: 1、接收任意输入,并返回字符串类型; >>> height = input ( "输入身高 : " ) #运行 输入身高 : 170 #输入整数170 >>> type ( a ) #type( )检查输出的数据类型 < class ' str ' > #字符串 2

windows10 下安装tensorflow 并且在jupyter notebook 上使用tensorflow

三世轮回 提交于 2020-03-18 09:08:19
一、安装jupyter notebook并配置环境 首先建议大家安装anaconda,最新版本请到官网下载(点击 下载连接 ),没错,直接点击下载python3.6版本的(当然选择做自己电脑相应的位数,我的是64bit),however,tensorflow并不支持python3.6,是不是感觉很尴尬,哈哈,一开始我是这么觉得的,嗯,山人自有妙计(后面讲)。下载完成之后,按照提示把安装包安装好,这个没什么好讲的,一路next。。。 在你安装好anaconda之后,在windows开始菜单中点击Anaconda3(64bi t ),点击anaconda prompt,这是打开了anaconda自带的终端程序,输入:jupyter notebook ,回车,你的jupyter notebook差不多安装完了,不过我还是建议大家修改一下工作空间,类似于eclipse的workspace,你创建的文件都会保存到这个工作空间下。 Note:还是打开anaconda prompt, 输入 jupyter notebook --generate-config,这是显示overwinte xxxxxxxx,后面跟了一串路径,该路径为jupyter notebook的配置文件路径,在这个路径下找到ipython_notebook_config.py,用编辑器打开该文件(我用的是notepad ++)