Python文件IO函数: 读写文件的 实践
在Python中,读写文件是很常见的操作,它可以为我们提供很多有价值的信息。Python提供了许多内置功能,可以帮助我们进行文件I/O操作。在这篇文章中,我们将介绍 实践来进行Python文件I/O操作。
一、打开文件
在Python中,我们使用内置的open函数来打开文件。它的语法如下:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
open()函数的 个参数是文件名或文件路径,如果文件在当前文件夹中,只需要提供文件名即可。否则需要提供完整的文件路径。有些操作系统使用斜杠(/),而有些使用反斜杠(\)。我们使用反斜杠(\)来避免转义问题。
例如:
file = open("example.txt")
这将打开一个名为“example.txt”的文件,如果文件不存在,会抛出一个FileNotFoundError。打开文件后,将返回文件对象。
打开文件时,我们可以指定文件的打开模式。在Python中,有许多打开文件的模式可供选择。
模式 | 描述
--- | ---
'r' | 读模式(默认)。在这种模式下,文件指针位于文件的开头。如果文件不存在,会抛出一个FileNotFoundError。
'w' | 写模式。在这种模式下,文件指针位于文件的开头。如果文件不存在,则创建文件。如果文件存在,则先清空文件,然后写入新内容。
'a' | 追加模式。在这种模式下,文件指针位于文件的末尾。如果文件不存在,则创建文件。
'x' | 独占模式。在这种模式下,只能写入新文件。如果文件已经存在,则抛出一个FileExistsError。
'b' | 二进制模式。用于读取或写入二进制数据(如图片、音频等)。在文本模式中,行末尾的换行符会被自动转换为换行符(\r
或
)。
't' | 文本模式(默认)。在文本模式中,行末尾的换行符会被自动转换为换行符(\r
或
)。
文件模式也可以以任意组合使用。例如,打开一个二进制文件用于读取和写入,可以使用“rb+”模式。
例如:
file = open("example.txt", "w")
这会以写模式打开一个名为“example.txt”的文件。
二、关闭文件
在Python中,当我们打开文件来读取或写入数据时,必须在操作完成后关闭文件。否则,由于文件对象已打开,将会对文件进行磁盘操作,这可能会影响到Python程序的性能。
可以使用文件对象的close()方法关闭文件。例如:
file = open("example.txt", "w")
# Do something...
file.close()
在使用完文件后,如果没有关闭文件,则可以在程序关闭之前使用Python的垃圾收集器将其关闭。但我们不应该依赖Python的垃圾收集器来关闭文件。
另一个关闭文件的方式是使用上下文管理器。使用with语句打开文件,当with语句块结束时,自动关闭文件。
例如:
with open("example.txt", "w") as file:
# Do something...
三、读取文件
在Python中,可以使用以下三种方式读取文件:
1. 使用read()方法读取所有内容
如果要读取整个文件的内容,可以使用文件对象的read()方法。例如:
file = open("example.txt", "r")
contents = file.read()
print(contents)
file.close()
这将打开名为“example.txt”的文件,并从该文件中读取所有数据。Python将文本文件中的所有内容作为字符串返回。
2. 使用readline()方法逐行读取文件
如果要逐行读取文件内容,可以使用文件对象的readline()方法。例如:
file = open("example.txt", "r")
for line in file:
print(line)
file.close()
在这个例子中,readline()方法每次读取文件中的一行,循环读取整个文件。
3. 使用readlines()方法读取所有行
要将所有行读入到Python列表中,请使用文件对象的readlines()方法。例如:
file = open("example.txt", "r")
lines = file.readlines()
for line in lines:
print(line)
file.close()
这将打开名为“example.txt”的文件,并将文件中的所有行放在Python列表中。我们可以使用for循环迭代该列表。
四、写入文件
在Python中,将文本写入文件可以通过以下方法实现:
1. 使用write()方法写入文本
我们可以使用文件对象的write()方法将文本写入文件。例如:
file = open("example.txt", "w")
file.write("Hello, world!")
file.close()
这将向名为“example.txt”的文件写入一行文本。
2. 使用多个write()方法写入文本
我们可以使用多个write()方法来逐个写入多行文本。例如:
file = open("example.txt", "w")
file.write("Hello, ")
file.write("world!")
file.close()
这将向名为“example.txt”的文件中写入两行文本。
3. 使用writelines()方法写入多行文本
我们还可以使用文件对象的writelines()方法,该方法接受列表作为参数,并将其写入文件。例如:
file = open("example.txt", "w")
lines = ["Hello, ", "world!"]
file.writelines(lines)
file.close()
这将向名为“example.txt”的文件中写入两行文本。
五、总结
文件I/O是每个Python程序员都必须掌握的基本技术之一。在本文中,我们介绍了Python文件I/O的 实践,包括打开、关闭、读写文件。
在Python中,我们可以使用open()函数打开一个文件,通过close()方法关闭文件。要读取文件,我们可以使用read()、readline()和readlines()方法。要写入文件,我们可以使用write()、writelines()方法。
为了保持Python代码的整洁和易于维护,我们建议在打开文件时使用with语句,这样可以自动关闭文件。在写入文件时,我们 使用with语句和writelines()方法。
Python文件I/O不仅在日常编程中很有用,而且在处理大量数据、生成报告、操作延迟数据流等方面也是必须的。掌握Python文件I/O的技巧和技术将使您的Python编程更加高效和精细。
