问题
用python实现读取文件内容
方法
with opened('/test.txt') as f:
for line in f.readlines():
print(line)
windows和linux针对文件路径的写法,不一样。windows默认是\,linux是/。不过,windows两种都支持。因此,建议一致都用/来表示路径。这样不容易出错。
# 读取二进制文件,rb
with open('c:/system32/notepad.exe', rb) as f
data = f.read()
text = data.decode('utf-8')
读取大文件
# 自带方法生成可迭代对象 推荐用法
with open(path) as f:
for line in f:
print(line)
# 将文件分段处理,使用yield生产可迭代对象
def read_in_block(file_path):
BLOCK_SIZE = 1024
with open(file_path, "r") as f:
while True:
block = f.read(BLOCK_SIZE) # 每次读取固定长度到内存缓冲区
if block:
yield block
else:
return # 如果读取到文件末尾,则退出
def test():
file_path = "/tmp/test.log"
for block in read_in_block(file_path):
print block
总结
- 打开文件记得关闭
- 文件路径使用/,win和Linux通用
- 读取二进制文件使用rb