Python3:文件读写

文件读写模式

使用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.')

你可能感兴趣的:(Python3:文件读写)