共计 1112 个字符,预计需要花费 3 分钟才能阅读完成。
前面的一些碎碎念
两天的耽搁,思考了下,虽然需要全面基础的学习,但是重点还是应该放在实战上。所以后续要速速的推倒这个教程了,用一些数据来实行一些分析:)
认真学习的分割线
打打打打鸡血!!!喝了一点点梅子酒,让我的创造力更加丰丰丰丰富!
IO 编程
文件读写
读读读
当我想读文件的时候,我可以做下面的动作。
偷偷的先 open() 个文件,记得传入文件名和标志符号
然后再小小的 read() 一下
最后记得 close()
f = open(‘/Users/michael/test.txt’, ‘r’)
f.read()
f.close()
当文件不存在的时候是会报错的喔,所以我们可以用 try…finally 来实现准确的关闭文件。
try:
f = open(‘/path/to/file’, ‘r’)
print(f.read())
finally:
if f:
f.close()
更简洁的版本是
with open(‘/path/to/file’, ‘r’) as f:
print(f.read())
如果文件很小,read() 一次性读取最方便;如果不能确定文件大小,反复调用 read(size) 比较保险;如果是配置文件,调用 readlines() 最方便。
当读入的文件为二进制文件或图片等其他,用 rb 模式打开文件即可。当读入的文件不是 UTF- 8 编码的时候,要传入 encoding 参数。
写写写
当我想写文件的时候,我在 open() 的时候把标志符改为 w
f = open(‘/Users/michael/test.txt’, ‘w’)
f.write(‘hello world’)
f.close()
可以传入 wb 来写二进制文件。写特定编码的文件的时候,传入 encoding 参数。为了不然后面写入的文件覆盖前面的,用 a(append) 模式写入即可,会追加到文件末尾。
StringIO 和 BytesIO
StringIO
StringIO 顾名思义就是在内存中读写 str。要把 str 写入 StringIO,首先要先创建一个 StringIO,然后写入~
用 getvalue 来获取写入后的 str。如果想读取 StringIO,也可以用 str 初始化一个 StringIO, 用 readline() 读取。
BytesIO
这位朋友是用来操作二进制文件的,在内存中读写 bytes。
>>> from io import BytesIO
>>> f = BytesIO()
>>> f.write(‘ 中文 ’.encode(‘utf-8′))
6
>>> print(f.getvalue())
b’\xe4\xb8\xad\xe6\x96\x87’
然后同 StringIO 一样,也可以用一个 bytes 初始化 BytesIO,然后像文件一样读取。
—– 写于 2019-01-09