- 读文件
- >>> f = open('/Users/michael/test.txt', 'r')
- 标示符'r'表示读 用read()方法可以一次读取文件的全部内容
- >>> f.read()
- 用close()方法关闭文件
- >>> f.close()
- 为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally来实现:
- try:
- f = open('/path/to/file', 'r')
- print f.read()
- finally:
- if f:
- f.close()
- 过于繁琐引入with语句来自动帮我们调用close()方法:
- with open('/path/to/file', 'r') as f:
- print f.read()
- 反复调用read(size)方法,每次最多读取size个字节的内容。
- 另外,调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。
- 要读取二进制文件,比如图片、视频等等,用'rb'模式打开文件:
- >>> f = open('/Users/michael/test.jpg', 'rb')
- >>> f.read()
- '\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六进制表示的字节 要读取非ASCII编码的文本文件,就必须以二进制模式打开,再解码。
- 比如GBK编码的文件:
- >>> f = open('/Users/michael/gbk.txt', 'rb')
- >>> u = f.read().decode('gbk')
- >>> u
- u'\u6d4b\u8bd5'
- >>> print u
- Python还提供了一个codecs模块帮我们在读文件时自动转换编码,直接读出unicode:
- import codecs
- with codecs.open('/Users/michael/gbk.txt', 'r', 'gbk') as f:
- f.read() # u'\u6d4b\u8bd5'
- 调用open()函数时,传入标识符'w'或者'wb'表示写文本文件或写二进制文件:
- >>> f = open('/Users/michael/test.txt', 'w')
- >>> f.write('Hello, world!')
- >>> f.close()
- 可以反复调用write()来写入文件,但是要用f.close()来关闭文件 with语句:
- with open('/Users/michael/test.txt', 'w') as f:
- f.write('Hello, world!')
12.2
最新推荐文章于 2025-01-05 11:13:42 发布