㈠ 常用的python库有哪些
10个顶级且实用的python库
1、Dash
Dash是比较新的软件包,它是用纯python构建数据可视化app的理想选择,因此特别适合处理数据的任何人。Dash是Flask、Plotly.js和React.js的混合体。
2、Pygame
Pygame是SDL多媒体库的python装饰器,SDL是一个跨平台开发库,旨在提供对以下内容的低级接口:音频、键盘、鼠标、游戏杆、基于OpenGL和Direct3D的图形硬件。
Pygame具有高度的可移植性,几乎可以在所有平台和操作系统上运行。尽管它具有完善的游戏引擎,但您也可以使用此库直接从python脚本播放MP3文件。
3、Pillow
Pillow专门用于处理图像,您可以使用该库创建缩略图,在文件格式之间转换、旋转、应用滤镜、显示图像等等。如果您需要对许多图像执行批量操作,这是理想的选择。
4、Colorama
Colorama允许你在终端使用颜色,非常适合python脚本,文档简短而有趣,可以在Colorama PyPi页面上找到。
5、JmesPath
在python中使用JSON非常容易,因为JSON在python字典上的映射非常好。此外,python带有自己出色的json库,用于解析和创建JSON。对我来说,这是它最好的功能之一,如果我需要使用JSON,可以考虑使用python。
JmesPath使python处理JSON更加容易,它允许您明确地指定如何从JSON文档中提取元素。
6、Requests
Requests建立在世界上下载量最大的python库urllib3上,它令Web请求变得非常简单,功能强大且用途广泛。
Requests可以完成您能想到的所有高级工作,比如:认证,使用cookie,执行POST、PUT、DELETE等,使用自定义证书,使用会话Session、使用代理等。
7、Simplejson
python中的本地json模块有什么问题?没有!实际上,python的json是Simplejson。意思是:python采用了Simplejson的一个版本,并将其合并到每个发行版中,但是使用Simplejson具有一些优点:它适用于更多python版本、它比python随附的版本更新频率更高、它具有用C编写的部分,因此非常快速。
8、Emoji
Emoji库非常意思,但并非每个人都喜欢表情包,分析视角媒体数据时,Emoji包非常有用。
9、Python-dateutil
Python-dateutil模块提供了对标准datetime模块的强大扩展。我的经验是:常规的python日期时间功能在哪里结束,而Python-dateutil就出现了。
10、BeautifulSoup
如果您从网站上提取了一些HTML,则需要对其进行解析以获取实际所需的内容。BeautifulSoup是一个python库,用于从HTML和XML文件中提取数据。它提供了导航,搜索和修改解析树的简单方法。它非常强大,即使损坏了,也能够处理各种HTML,这是一个非常强大的功能。
它的一些主要功能:
①BeautifulSoup会自动将传入文档转换为Unicode,将传出文档转换为UTF-8,您无需考虑编码。
②BeautifulSoup位于流行的python解析器的顶部,使您可以尝试不同的解析策略或提高灵活性。
㈡ Python 拿来直接用的7个os读写文件的操作!网友:建议收藏!
在学习真实案例之前,我们先来了解一下Python文件操作的一些基本概念~~
如何创建读取和写出的文件对象,open()方法来搞定
他有两个参数,第一个就是读取的文件名称,第二个是可选的,指的是打开文件的模式,默认是读取文件。
当我们获取到读取文件对象fin之后我们就可以读取文件内容了,这里介绍两种方式。
第一种是直接读取文件内容,
第二种是按行读取文件内容。
区别在于如果你的文件非常大,如果直接读取效率会非常低下,甚至会撑爆内存。
所以按行读取按行处理就不会因为文件过大而产生问题了
文件读取完成之后写出文件有如下方式:
'\n'的意思是我们手动换行
最后关闭文件有两种方式
为什么要关闭文件呢?
如果不关闭他就会持续打开状态,琐事其他进程后者线程要操作它的时候就会报错
我们有时候写入非常大的数据的时候打开文件后会发现数据不是最新的?
这是因为python在写出文件是先写到内存中,等到一定的事件之后或者文件到达一定的数量之后才会写入到磁盘
所以我们如果想要看最新的数据,可直接调用如下方法
接下来我们使用数据进行测试
1. 文件读操作
文件读、写操作比较常见。读取文件,要先判断文件是否存在。
若文件存在,再读取;不存在,抛出文件不存在异常。
文件存在情况:
文件不存在情况:
open 后,务必要 close,这种写法有些繁琐,还容易出错。借助 with 语法,同时实现 open 和 close 功能,这是更常用的方法。
2.获取文件的后缀名
如何优雅地获取文件后缀名?os.path 模块,splitext 能够优雅地提取文件后缀。
3. 批量修改文件后缀名
修改之前
修改文件后缀名的文件方法如下:
从修改之后:
4. 获取文件名
有时拿到一个文件名时,名字带有路径。这时,使用 os.path、split 方法实现路径和文件的分离。
我们还可以直接使用使用os.path 模块,splitext 提取文件后缀名。
5.获取以指定后缀结尾的文件
当我们想要查询某路径下所有以固定后缀结尾的文件时,可以使用如下方法
6. 批量修改文件后缀名
后缀名批量修改,实现思路:
1. 遍历目录下的所有文件
2. 获取文件的后缀名
3. 如果后缀名命中为 old_ext,rename 重命名
defbatch_rename(work_dir, old_ext, new_ext):
"""
传递当前目录,原来后缀名,新的后缀名后,批量重命名后缀
7. 批量获取文件修改时间
os.walk 生成文件树结构,os.path.getmtime 返回文件的最后一次修改时间:
㈢ Python 文件操作
open(filename[,mode,encoding="编码"]) :第一个参数文件名如果不加路径,默认在该py文件目录下(路径举例: E:/XXX或E:\xxx ),第二个是模式,默认为 'r' ——只读,举例: f = open('E:/abc.txt') ,如果要转编码并写入模式:
f = open('E:/abc.txt','w',encoding='utf-8')
1. 模式
2. 方法
(1) close() : 关闭文件,因为文件写入时是写在内存,只有关闭时才写入硬盘,所以写完记得关闭
(2) read(size = -1) :读取文件size个字符,不写默认是-1,此时读取所有内容(换行按
来表示,很不好看),并作为字符串返回,一定要注意 读完以后文件指针将会指向末尾 ,所以下一次在用read方法时会发现读取不出内容了,所以这个就要用seek移动指针或者关闭文件重新定义
(3) tell() :返回当前文件指针指向的位置
(4) seek(offset,from) :移动文件指针,代表从from参数开始偏移offset个字节,0代表起始位置,1代表当前位置,2代表文件末尾
(5) readline() :按序列读取一行内容,默认
为边界
(6) write() :写入内容,但必须要有写入权限才行,否则报错,写完会返回写入的长度,例如: len1 = f.write('abc') ,此时len1就为3
(7) truncate() :删除内容,把当前指针以后的内容全删了,举例:
注:
1.文件还可以转化为 list 之类的,例如: list1 = list(f) ,此时文件内容的按
被隔开,然后可以用for语句读取文件所有内容,举例:
2.上面输出文件内容方法相对低效,所以一般都直接用for输出整个文件,举例:
通过 fileno 函数,我们可以查看一个文件对应的文件描述符,对应的是程序中打开的文件序号,举例:
可以看出python在启动时会先启动标准流的文件(文件描述符分别为:0/1/2),所以之后打开的文件就从3开始递增,当释放一个文件资源时,该描述符序号被释放,之后打开的文件可以继续使用该序号的文件描述符
python中的 print 的本质是通过 sys.stdout 来进行内容输出,而 sys.stdout 的本质是一个"文件",相当于我们所有的输入输出的本质都是在对 sys.stdin / sys.stdout / sys.stderr 这些文件来进行读写操作,举例:
open 函数不仅可以打开本地文件,也可以打开文件描述符,而该参数默认为 True ,代表 close 后会将对应的文件资源释放,而对于一些文件描述符,我们只是希望 close 时将打开文件描述符的对象释放,而不释放对应的文件资源,那么则可以设置 closefd=False ,举例:
需要使用到 chardet 模块,按二进制可读打开文件,然后通过 detect() 方法查看,举例:
所以就可以根据文件来设置编码了:
有时候使用文件的编码解码也可能会出现无法解析的情况,例如两种编码混在同一个文件里的时候,此时可以设置 errors 参数为 ignore 来避免该问题,示例:
可用 os 模块下的 chmod() 函数,具体参考: http://www.runoob.com/python/os-chmod.html
使用 os 模块下的 remove() 函数可以实现删除文件,举例:
可以使用自带的 zipfile 模块来进行操作,举例:
可以使用自带的 tarfile 模块来进行操作,举例:
https://www.cnblogs.com/lotusto/p/5805543.html
㈣ 最常用的几个python库
Python常用库大全,看看有没有你需要的。
环境管理
管理 Python 版本和环境的工具
p – 非常简单的交互式 python 版本管理工具。
pyenv – 简单的 Python 版本管理工具。
Vex – 可以在虚拟环境中执行命令。
virtualenv – 创建独立 Python 环境的工具。
virtualenvwrapper- virtualenv 的一组扩展。
包管理
管理包和依赖的工具。
pip – Python 包和依赖关系管理工具。
pip-tools – 保证 Python 包依赖关系更新的一组工具。
conda – 跨平台,Python 二进制包管理工具。
Curdling – 管理 Python 包的命令行工具。
wheel – Python 分发的新标准,意在取代 eggs。
包仓库
本地 PyPI 仓库服务和代理。
warehouse – 下一代 PyPI。
Warehousebandersnatch – PyPA 提供的 PyPI 镜像工具。
devpi – PyPI 服务和打包/测试/分发工具。
localshop – 本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。
分发
打包为可执行文件以便分发。
PyInstaller – 将 Python 程序转换成独立的执行文件(跨平台)。
dh-virtualenv – 构建并将 virtualenv 虚拟环境作为一个 Debian 包来发布。
Nuitka – 将脚本、模块、包编译成可执行文件或扩展模块。
py2app – 将 Python 脚本变为独立软件包(Mac OS X)。
py2exe – 将 Python 脚本变为独立软件包(Windows)。
pynsist – 一个用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python本身。
构建工具
将源码编译成软件。
buildout – 一个构建系统,从多个组件来创建,组装和部署应用。
BitBake – 针对嵌入式 Linux 的类似 make 的构建工具。
fabricate – 对任何语言自动找到依赖关系的构建工具。
PlatformIO – 多平台命令行构建工具。
PyBuilder – 纯 Python 实现的持续化构建工具。
SCons – 软件构建工具。
交互式解析器
交互式 Python 解析器。
IPython – 功能丰富的工具,非常有效的使用交互式 Python。
bpython- 界面丰富的 Python 解析器。
ptpython – 高级交互式Python解析器, 构建于python-prompt-toolkit 之上。
文件
文件管理和 MIME(多用途的网际邮件扩充协议)类型检测。
imghdr – (Python 标准库)检测图片类型。
mimetypes – (Python 标准库)将文件名映射为 MIME 类型。
path.py – 对 os.path 进行封装的模块。
pathlib – (Python3.4+ 标准库)跨平台的、面向对象的路径操作库。
python-magic- 文件类型检测的第三方库 libmagic 的 Python 接口。
Unipath- 用面向对象的方式操作文件和目录
watchdog – 管理文件系统事件的 API 和 shell 工具
日期和时间
操作日期和时间的类库。
arrow- 更好的 Python 日期时间操作类库。
Chronyk – Python 3 的类库,用于解析手写格式的时间和日期。
dateutil – Python datetime 模块的扩展。
delorean- 解决 Python 中有关日期处理的棘手问题的库。
moment – 一个用来处理时间和日期的Python库。灵感来自于Moment.js。
PyTime – 一个简单易用的Python模块,用于通过字符串来操作日期/时间。
pytz – 现代以及历史版本的世界时区定义。将时区数据库引入Python。
when.py – 提供用户友好的函数来帮助用户进行常用的日期和时间操作。
文本处理
用于解析和操作文本的库。
通用
chardet – 字符编码检测器,兼容 Python2 和 Python3。
difflib – (Python 标准库)帮助我们进行差异化比较。
ftfy – 让Unicode文本更完整更连贯。
fuzzywuzzy – 模糊字符串匹配。
Levenshtein – 快速计算编辑距离以及字符串的相似度。
pangu.py – 在中日韩语字符和数字字母之间添加空格。
pyfiglet -figlet 的 Python实现。
shortuuid – 一个生成器库,用以生成简洁的,明白的,URL 安全的 UUID。
unidecode – Unicode 文本的 ASCII 转换形式 。
uniout – 打印可读的字符,而不是转义的字符串。
xpinyin – 一个用于把汉字转换为拼音的库。
㈤ Python其实很简单 第十五章 文件操作
在各种变量中保存的数据都是临时的,随着程序运行结束都会丢失。要做到数据长期有效,必须建立在磁盘中建立文件,将数据输入到文件中并保存。需要获取数据时需要打开文件读取。
而我们自己建立的程序都是应用程序,从本质上讲,应用程序是无法直接操作计算机的硬件的,譬如读写磁盘中文件,这就需要调用操作系统中的相应命令。接下来我们使用的Python内置函数open()、write()都是通过调用操作系统的相关命令才实现文件读写的,至于其中的细节,我们就不需要考虑了。
15.1创建和打开文件
在Python 中创建或打开文件,实际上是建立一个对象,该对象通过调用内置的open()函数创建或打开一个文件。
语法:
file object = open(filename [, mode][, buffering])
参数说明如下:
filename:file_name变量是一个包含了你要访问的文件名称的字符串值;
mode:mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
Buffering:如果buffering的值被设为0,就不会有寄存;如果buffering的值取1,访问文件时会寄存行;如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小;如果取负值,寄存区的缓冲大小则为系统默认。
mode参数的参数值及说明
对于其中最难区别的r、r+、w、w+、a、a+几个参数的区别总结如下,要特别注意指针的位置:
下面举例说明open( )函数的使用方法。
例1:
>>> file=open(Ƈ.py')
如果文件“1.py”存在,则可以打开此文件;如果文件“1.py”不存在,则会出现如下提示:
Traceback (most recent call last):
File " ", line 1, in
file=open(Ƈ.py')
FileNotFoundError: [Errno 2] No such file or directory: Ƈ.py'
例2:
>>> file=open(Ɗ.py',’a+’)
虽然文件“4.py”不存在,但运行并未出现错误,参见上表,“a+”的含义是以读写模式打开文件,如果该文件已经存在,新内容将以追加方式写入;如果该文件不存在,则新建文件用于写入。查看文件夹,发现已经生成了一个新的文件4.py。
例3:
file=open('python.png','rb')
print(file)
运行结果:
这就是说,虽然Python可以打开一个图片格式的文件,但print()并不能将其输出,还需要第三方库中模块的相应方法去处理,如PIL中的open()f方法。
例4:
file = open("f.txt", "w",encoding='utf-8')
# 以只写模式打开文件f.txt,编码方式为utf-8
print( "文件名: ", file.name) # 输出文件名
print( "是否已关闭 : ", file.closed) # 文件是否打开
print( "访问模式 : ", file.mode) # 文件访问模式
运行结果:
文件名: f.txt
是否已关闭 : False
访问模式 : w
例5:
15.2关闭文件
打开文件使用后要及时关闭,以免造成不必要的破坏,同时也可以释放内存。在Python中使用close()方法可以关闭文件。
语法格式:
file.close()
其中,file为文件对象。
15.3 with语句
with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。
with语句的语法格式如下:
with expression as target:
with-body
其中,expression用于指定一个表达式,譬如打开文件的open()函数。target用于指定一个变量,并且将expression的结果保存到该变量中,譬如文件对象file。with-body用于指定with语句体,譬如一些文件操作的相关语句,如果没有要执行的语句体,则直接用pass语句代替。
假设python当前目录下存在一个test.txt文件,其内容如下:
Python是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
Python是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
Python是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
Python是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发。
举例如下:
with open('test.txt','r',encoding='utf-8') as file:
line=file.readline() # readline()方法可以读取文件一行数据,接下来就会讲到。
print(line)
运行结果如下:
Python是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
而此时,我们给该段代码with语句之外再增加一个读取文件的语句,代码如下:
with open('test.txt','r',encoding='utf-8') as file:
line=file.readline()
print(line)
line2=file.readline()
print(line2)
发现出现了如下错误提示:
Traceback (most recent call last):
File "C:/Users/zym/AppData/Local/Programs/Python/Python39/3.py", line 5, in
line2=file.readline()
ValueError: I/O operation on closed file.
意思是要读取的文件已经被关闭了。
由此可知,当with语句运行结束后,被打开的test.txt文件就自动关闭了。
15.4读取文件
在Python 中读取文件的方法有:
1、读取指定个数的字符
格式如下:
File.read([size])
其中,file为打开的文件对象。size为可选参数,可以指定要读取的字符个数,省缺表示读取所有内容。
在调用read()方法读取文件内容时,文件必须是以r(只读)或者r+(读写)方式打开。
如:
with open('test.txt','r',encoding='utf-8') as file:
txt=file.read() (或txt=file.read(10))
print(txt)
将读取、输出test.txt文件的全部内容(或前10个字符)。
2、移动文件的指针
对于刚打开的文件,文件指针总是指向文件头的。也可以通过seek()方法将文件的指针移动到新的位置。
格式如下:
file.seek(offset[,whence])
其中,file表示已经打开的文件对象;offset用于指定移动的字符个数;whence表示从哪个位置起始计算个数,其值为0表示从文件头开始计算,其值为1表示从当前位置开始计算,其值为2表示从文件尾开始计算,默认值为0。
例如:
with open('test.txt','r',encoding='utf-8') as file:
string=file.read(9)
print('取9个字符: '+string)
file.seek(2) #指针从文件头开始移动2个字符
string=file.read(9) #从当前位置读取10个字符
输出结果:
取9个字符:
Python是一种
取9个字符:
thon是一种解释
而下面的代码会抛出错误:
with open('test.txt','r',encoding='utf-8') as file:
file.seek(2,1) #指针从当前位置开始移动2个字符
string=file.read(10) #从当前位置读取10个字符
print('取10个字符: '+string)
错误提示为:
Traceback (most recent call last):
File "C:.py", line 7, in
file.seek(2,1) #指针从当前位置开始移动2个字符
io.UnsupportedOperation: can't do nonzero cur-relative seeks
原因在于,必须使用b模式(即rb)打开文件,才能使用whence参数。但是,b模式(二进制)不适合文本文件。对于test.txt这样的文本文件,为了解决通过改变指针读取任意位置字符,可以采用加一个位置变量的方法来存储指针的值。
例如:
with open('test.txt','r',encoding='utf-8') as file:
#utf-8汉字与英文字符都占一个字符
string='' #设置一个空字符串
pointer=0 #当前指针为0
str1=file.read(6) #读取6个字符
pointer+=6 #指针变量后移6个字符
string+=str1 #string用来存放已读取的字符
print('取6个字符: ',str1)
file.seek(pointer) #指针从文件头开始移动2个字符
str1=file.read(8) #从当前位置读取10个字符
pointer+=8 #指针跳过已读取的字符
string+=str1
print('再取8个字符: ',str1)
print('所有读取的字符: ',string)
print('当前指针所处的位置: ',pointer)
str1=file.read(1)
print('当前指针所处的字符: ',str1)
运行结果如下:
取6个字符:
Python
再取8个字符:
是一种解释型语言
所有读取的字符:
Python是一种解释型语言
当前指针所处的位置:
14
当前指针所处的字符:
:
3、读取一行数据readline()方法
语法格式:
file.readline()
例:
with open('test.txt','r',encoding='utf-8') as f:
string=f.read(1) # 读取文件的第一个字符
if string != '': # 防止文件为空文件
lineno=0
while True:
line=f.readline()
if line != '':
lineno+=1
print('第'+str(lineno)+'行:'+line,end='')
# 因为每行都有自带的分行符,print()语句不允许换行
else:
break # 出现空行时停止读取
else:
print('要读取的文件为空文件!')
运行结果:
第1行:ython是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
第2行:Python是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
第3行:Python是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
第4行:Python是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发。
4、读取全部行命令readlines()方法
语法格式:
File.readlines()
该方法与read()方法一样,在调用read()方法读取文件内容时,文件必须是以r(只读)或者r+(读写)方式打开。
例:
with open('test.txt','r',encoding='utf-8') as f:
txt=f.readlines()
print(txt)
运行结果:
['Python是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。 ', 'Python是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。 ', 'Python是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。 ', 'Python是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发。 ']
从上面的运行结果可以看出,readlines()方法的返回值为一个字符串行表。所以,也可以以读取列表元素的方法输出。如下所示:
with open('test.txt','r',encoding='utf-8') as f:
txt=f.readlines()
for line in txt:
print(line,end='')
运行结果:
Python是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
Python是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
Python是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
Python是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发。
15.5 写入文件内容
语法格式如下:
file.write(string)
其中,file为打开的文件对象,string为要写入的字符串。
写入文件内容时,文件必须以w(可写)或a(追加)模式打开。否则,会抛出如下异常提示:
Traceback (most recent call last):
File "C:.py", line 2, in
f.write('人生苦短,我用Python!')
io.UnsupportedOperation: not writable
关于write()方法的用法举例如下:
with open('test.txt','a',encoding='utf-8') as f:
f.write('人生苦短,我用Python!')
with open('test.txt','r',encoding='utf-8') as f:
txt=f.read()
print(txt)
运行结果:
Python是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
Python是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
Python是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
Python是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发。
人生苦短,我用Python!
可以看出,由于文件的打开方式为a模式(追加模式),写入的内容被写入到文件的末尾。
在Python中,文件操作方法里没有类似于字符串内的计算长度、查找、替换、截取、分隔等方法,为什么没有?原因可能是文件的类型太复杂,譬如说二进制文件,上述操作的意义不大。如果仅仅要对文本文件进行上述操作,完全可以先把文件的内容读取到字符串中,再用相应的字符串函数或方法去操作就可以了。譬如,要将test.txt文件中的字符串‘Python’替换为’PHP’,则可以用如下代码完成:
txt1=''
with open('test.txt','r',encoding='utf-8') as f:
txt1=f.read() #先将文件内容存入字符串txt1中
txt2=txt1.replace('Python','PHP') #将txt1中的'Python'替换为'PHP',并存入txt2
with open('test.txt','w',encoding='utf-8') as f:
f.write(txt2) #将字符串txt2的内容写回到文件中
这里之所以分两步打开文件(第一次为r模式,第二次为w模式),而没有采用一次读写(r+、w+方式),因为那样比较容易出错。实践证明,将文件的读操作和写操作分开其实是非常正确的选择。
㈥ 开启数据分析的大门-数据收集:Python对文件的操作
简介
我是一名应届经济学毕业生,在学习Python语言的过程中,接触到了数据分析,机器学习和人工智能,并对此特别感兴趣,现在我把整个学习过程记录下来,希望和我有相同兴趣和爱好的朋友们一同成长,期盼着各位专家的指导。
环境介绍
在整个过程当中,将采用Python和Excel,采用Python,是因为Python提供了丰富的开发框架和工具库,使用Excel是因为Excel是使用非常广泛的办公软件,我在Excel里将复杂的算法简单化,使大家快速理解各种难以理解的算法。
在开始之前,我们已经准备好了Anaconda和Excel环境。在这里省略了这个过程。
数据获取将通过tushare开放平台,后面我会介绍和演示如何应用tushare平台。
数据分析流程简介
数据分析是由数据收集开始,收集的数据经过标准化处理和整理后,通过各种算法,进行数据分析,目的是为了总结过去的 历史 数据,在数据趋势上预测未来的走势,同时对现存的环境进行优化。
我们今天先从数据收集开始。
数据收集需要应用到Python对文件的读写操作。
下面这段代码以只读方式采用’UTF-8’编码方式打开当前目录下的text1.txt文件,并输出到屏幕上。操作完毕后,关闭文件。
小贴士:在从tushare平台获取数据时,每个用户会分配到一个key,我们可以把这个key封装到这个文件里。为的是数据安全和便利性。
Python对数据的处理主要是csv文件格式,Excel和数据库。今天我们主要针对csv文件进行操作。为的是尽快开始我们的数据分析之旅。后面在适当的时候,我来完成对Excel和数据库的操作。
Python 读取csv文件有很多种方法,我们这里采用PANDAS库,下面是读取csv文件代码:
下面这段代码先生成数据列表,然后写入csv文件。
好了,到现在为止,Python对数据收集的基础工作就算完成了,Python对文件操作有很多技巧,不是我们这一系列的重点,就不一一介绍了,有兴趣的伙伴可以查阅相关文档。
㈦ Python常用的标准库以及第三方库有哪些
Python常用的标准库有http库。第三方库有scrapy,pillow和wxPython.以下有介绍:
Requests.Kenneth Reitz写的最富盛名的http库,每个Python程序员都应该有它。
Scrapy.如果你从事爬虫相关的工作,那么这个库也是必不可少的。用过它之后你就不会再想用别的同类库了。
wxPython.Python的一个GUI(图形用户界面)工具。我主要用它替代tkinter。
Pillow.它是PIL的一个友好分支。对于用户比PIL更加友好,对于任何在图形领域工作的人是必备的库。