Python3:文件读写
2018-07-16 本文已影响48人
ACphart
文件读写模式
使用open()函数
- 以任何方式使用文件之前,都必须打开文件;打开文件使用open()函数,其返回一个文件对象
- 打开模式,如下表
实参符号 | 说明 |
---|---|
'r' | 读取模式 |
'w' | 写入模式 |
'a' | 附加模式 |
'r+' | 读取和写入模式 |
默认 | 只读模式 |
读取文件
with与open()
with open('path\file_name') as file_obj:
contents = file_obj.read()
print(contents)
- 关键字with在不需要再访问文件后将其关闭。
- 你也可以调用open()和close()来打开和关闭文件,但这样做时,如果程序存在bug,导致close()语句未执行,文件将不会关闭,未妥善地关闭文件可能会导致数据丢失或受损,如果在程序中过早地调用close(),你会发现需要使用文件时它已关闭(无法访问),这会导致更多的错误。
- 并非在任何情况下都能轻松确定关闭文件的恰当时机,但通过使用with,可让Python去确定在合适的时候自动将其关闭。
- read()方法用以读取这个文件的全部内容,并将其作为一个长长的字符串存储在变量contents中。
逐行读取
- 以每次一行的方式检查文件
with open('path\filename') as file_obj:
for line in file_obj:
print(line)
- 读取文本文件时,所有的文本都解读成字符串,如果读取的是数字,并且要将其作为数值使用,就必须使用函数int()或float()将其转换为数值类型。
写入文件
写入空文件
with open('path\filename', 'w') as file_obj:
file_obj.write('I love Python.')
- ‘w’实参指明以写入模式打开这个文件。如果你要写入的文件不存在,open()将自动创建它;如果文件存在,Python会先将文件清空再返回该文件对象。
- write()方法将一个字符串写入文件。
- Python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数str()将其转换为字符串格式。
写入多行
- write()不会在你写入的文本末尾添加换行符,多次写入会挤成一行,可用如下方式解决:
with open('path\filename', 'w') as file_obj:
file_obj.write('I love Python.\n')
file_obj.write('I love C++ too.\n')
- 和显示到终端一样,还可以使用空格、制表符和空行来设置这些输出的格式。
附加到文件
- 如果要给文件添加内容,而不是覆盖原有内容,可以附加模式打开文件。若文件不存在,会创建一个空文件。
with open('path\filename', 'a') as file_obj:
file_obj.write('I love Java too.')