open 函数可以打开一个文件。超级简单吧?大多数时候,我们看到它这样被使用:
f = open('photo.jpg', 'r+')
jpgdata = f.read()
f.close()
有三个错误存在于上面的代码中。你能把它们全指出来吗?
正确的用法:
with open('photo.jpg', 'r+') as f:
jpgdata = f.read()
open的第一个参数是文件名。第二个(mode 打开模式)决定了这个文件如何被打开。
- 读取文件,传入r
- 读取并写入文件,传入r+
- 覆盖写入文件,传入w
- 在文件末尾附加内容,传入a
以二进制模式来打开,在mode字符串后加一个b
例子:读取一个文件,检测它是否是JPG
import io
with open('photo.jpg', 'rb') as inf:
jpgdata = inf.read()
if jpgdata.startswith(b'\xff\xd8'):
text = u'This is a JPEG file (%d bytes long)\n'
else:
text = u'This is a random file (%d bytes long)\n'
with io.open('summary.txt', 'w', encoding='utf-8') as outf:
outf.write(text % len(jpgdata))