读取文件
r 模式表示读取文件;
Python 引用 with
语句自动调用 close()
用法 (人性化无疑:
with open('/path/to/file/', 'r') as f: # r模式读取文件(文件名:f)
f.read() # read()读取文件内容
read()
会一次读取文件全部内容。如果文件有20G,内存直接爆炸。
保险起见建议调用 read(size)
:
with open('/path/to/file/", 'r') as f:
f.read(5) # read(5)读取文件内容前5个字节
另外,可以调用 readline()
方法将文件每次读取一行内容:
with open('/path/to/file/', 'r') as f:
f.readline() # readline()读取文件前一行
也可调用 readlines()
一次读取文件所有内容并返回 list
:
with open('/path/to/file/', 'r') as f:
for line in f.readlines: # 调用readlines()并逐行输出
print(line.strip()) # strip()删掉文末的'\n'
编写文件
w 模式表示编写文件文本; wb 模式表示编写二进制文本;
若调用单纯的 open('/path/to/file/', 'w')
编写文件需要 close()
语句关闭文件以保证编入的数据完整存入文件,否则会丢失后面一部分的数据(因为系统不会立刻将数据编入文件,而是缓缓编入;只有调用 close()
才保证系统将后续数据编入文件)
而此时调用 with
语句更加保险:
with open('/path/to/file/', 'w') as f:
f.write('Hello, Python!') # write()编写文件
对于多个文件的读写
- 嵌套
with open('/path/to/file/', 'r+') as f1:
with open('/path/to/file/', 'r+';) as f2:
with open('/path/to/file/';, 'r+') as f3:
······
······
······
暴力
with open('/path/to/file/', 'r+') as f1:
······
with open('/path/to/file/', 'r+') as f2:
······
with open('/path/to/file/', 'r+') as f3:
······