1.open

使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。

1
2
3
4
5
file_object = open(\'thefile.txt\')
try:
  all_the_text = file_object.read( )
finally:
  file_object.close( )

注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法。

2.读文件

读文本文件

1
2
3
input = open(\'data\', \'r\')
#第二个参数默认为r
input = open(\'data\')

读二进制文件

input = open(\’data\’, \’rb\’)

读取所有内容

1
2
3
4
5
file_object = open(\'thefile.txt\')
try:
  all_the_text = file_object.read( )
finally:
  file_object.close( )

读固定字节

1
2
3
4
5
6
7
8
9
file_object = open(\'abinfile\', \'rb\')
try:
  while True:
    chunk = file_object.read(100)
    if not chunk:
      break
    do_something_with(chunk)
finally:
  file_object.close( )

读每行

list_of_all_the_lines = file_object.readlines( )

如果文件是文本文件,还可以直接遍历文件对象获取每行:

for line in file_object:
    process line

3.写文件

写文本文件
output = open(\’data\’, \’w\’)

写二进制文件
output = open(\’data\’, \’wb\’)

追加写文件
output = open(\’data\’, \’w+\’)

写数据

1
2
3
file_object = open(\'thefile.txt\', \'w\')
file_object.write(all_the_text)
file_object.close( )

写入多行
file_object.writelines(list_of_text_strings)

注意,调用writelines写入多行在性能上会比使用write一次性写入要高

版权声明:本文为b-l-java原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/b-l-java/p/6399512.html