关于python:Python-读写文件

9次阅读

共计 824 个字符,预计需要花费 3 分钟才能阅读完成。

读文件

try:
    f = open('/path/to/file', 'r')
    print(f.read())
except IOError as e:
    print('except:', e)
finally:
    if f:
        f.close()

应用 with 语句会主动调用 close() 办法:

with open('/path/to/file', 'r') as f:
    print(f.read())

罕用的读办法:

  • read() 一次性读取文件的全部内容;
  • read(size) 每次读取 size 个字节的内容;
  • readline() 每次读取一行内容;
  • readlines() 一次读取所有内容并按行返回list

readlines() 应用示例:

for line in f.readlines():
    print(line.strip()) # 把开端的 '\n' 删掉

类文件对象

含有 read() 办法的对象,在 Python 中统称为 file-like Object。

文件、字节流、网络流、自定义流等都是 file-like Object。

读取二进制文件

图片、视频等都属于二进制文件,须要用 'rb' 模式关上:

>>> f = open('/Users/michael/test.jpg', 'rb')
>>> f.read()
b'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六进制示意的字节

指定读取的字符编码

>>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore')
>>> f.read()
'测试'

写文件

写文件时,操作系统往往不会立即把数据写入磁盘,而是放到内存缓存起来,闲暇的时候再缓缓写入。只有调用 close() 办法时,操作系统才把没有写入的数据全副写入磁盘。所以倡议应用 with 形式:

with open('/path/to/file', 'w') as f:
    f.write('Hello, world!')

w 模式为笼罩写入
a 模式为追加写入

正文完
 0