读取文件,每次都调用try ….. finally太麻烦了,所以python就引入了with语句来自动帮我们调用close()方法
with open(‘/path/to/file_name’,’r’) as f:
print(f.read())
调用read()会一次性读取文件的全部内容,如果文件过大,就会造成内存的溢出,所以为了保险起见,我们可以反复调用read(size)方法,每次最多读取size个字节的内容。另外,调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。
for line in f.readlines():
print(line.strip()) # 把末尾的’/n’删掉
二进制文件,要读取二进制文件,比如图片、视频等等,用’rb’模式打开文件即可:
字符编码
要读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数,例如,读取gbk编码的文件
当然,还有可能遇到一些编码不规范的文件,报UnicodeDecodeError错误,此时可以增减一个errors参数。
写文件
写入文件和读文件是一样的,唯一区别是调用open()函数时,传入的标识符’w’或者’wb’表示写入文本文件或者二进制文件:
使用with语句会更保险一些,因为忘记调用close()的后果是数据可能只有一部分写入到磁盘里,剩下的一部分会丢失。
要写入特定编码的文本文件,请给open() 函数传入encoding参数,将字符串自动转换成指定的编码。
操作文件和目录
查看当前目录的绝对路径:
import os
os.path.abspath(‘.’)
在某个目录下创建一个新目录,显示完整路径出来:
os.path.join(‘/Users/michael’, ‘testdir’) #创建一个testdir的目录在Users/michael下面
创建一个目录:
os.mkdir(‘/Users/michael/testdir’)
删除一个目录:
os.redir(‘/Users/michael/testdir’)
删除文件与重命名文件
列出当前文件下面所有.py文件,
[x for x in os.listdir(‘.’) if os.path.isfile(x) and os.path.splitext(x)[1]==’.py’]
序列化
我们把变量从内存中变成可存储或传输的过程称之为序列化。Python 提供了 pickle 模块来实现序列化。
TRANSLATE with x
English
TRANSLATE with
COPY THE URL BELOW
Back
EMBED THE SNIPPET BELOW IN YOUR SITE
Enable collaborative features and customize widget: Bing Webmaster Portal
Back
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/282916.html