Python操作文件
- 文本文件是很容易操作的。在编辑文件之前,必须使用 open 函数打开文件。
myfile = open("filename.txt")
-
可以通过向 open 函数应用第二个参数来指定用于打开文件的模式。
参数 “r” 表示在读取模式下打开,这是默认设置。
参数“w”表示写入模式,用于重写文件的内容。
参数“a”表示追加模式,用于将新内容添加到文件末尾。
将“b”添加到某个模式中文件将以二进制模式打开它,该模式用于非文本文件(如图像和声音文件)。
# 写模式 open("filename.txt", "w") # 读模式 open("filename.txt", "r") open("filename.txt") # 二进制写入模式 open("filename.txt", "wb")
- 文件被打开和使用后要记得关闭它。通过文件对象的 close 方法进行关闭。
file = open("filename.txt", "w") # do stuff to the file file.close()
- 可以使用 read 方法读取以文本模式打开的文件的内容。
file = open("filename.txt", "r") cont = file.read() print(cont) file.close()
- 如果只要读取文件一部分内容,你可以提供一个数字作为 read 方法的参数。决定要读取的字节数。
你可以进行多次调用来读取同一个文件对象,逐字节读取更多的内容。如果没有参数,read 返回文件的其余部分内容。
file = open("filename.txt", "r") print(file.read(16)) print(file.read(4)) print(file.read(4)) print(file.read()) file.close()
- 要写入文件,请使用 write 方法,该方法将字符串写入文件。
file = open("newfile.txt", "w") file.write("This has been written to a file") file.close() file = open("newfile.txt", "r") print(file.read()) file.close()
- 当以写入("w")模式打开文件时,文件的现有内容会被删除。
# -*- coding: UTF-8 -*- file = open("newfile.txt", "r") print("读取newfile.txt") print(file.read()) print("===结束===") file.close() file = open("newfile.txt", "w") file.write("写入一些新的内容") file.close() file = open("newfile.txt", "r") print("再次读取newfile.txt") print(file.read()) print("===结束===") file.close()
- 如果写入成功的话 write 方法返回写入文件的字节数。
msg = "Hello world!" file = open("newfile.txt", "w") amount_written = file.write(msg) print(amount_written) file.close()
- 要确保文件在使用后始终关闭,避免浪费资源是一种好的做法。一个方法是使用 try 和 finally 。
try: f = open("newfile.txt") print(f.read()) finally: print("即使发生错误,这可以确保文件始终关闭。") f.close()
- 一个替代方法是使用语句。这将创建一个临时变量(通常称为f),该变量只能在 with 语句的缩进块中访问。
with open("newfile.txt") as f: print(f.read())