Python 中的文件处理
Python 中的文件处理
从文件读取数据或向文件写入数据是任何编程语言支持的基本操作之一。Python为处理文件操作提供了广泛的支持,这些操作大多在其标准库中可用。在本节中,我们将讨论核心文件操作,如打开文件、关闭文件、从文件读取、写入文件、使用上下文管理器进行文件管理,以及使用Python标准库用一个句柄打开多个文件。
文件操作
文件操作通常从打开文件开始,然后读取或更新该文件中的内容。核心文件操作如下:
打开和关闭文件
要对文件进行读取或更新操作,我们需要一个指向文件的指针或引用。文件引用可以通过使用内置 open
函数打开文件来获得。该函数返回对文件对象的引用,在某些文献中也称为文件句柄。使用 open
函数的最低要求是提供带有绝对路径或相对路径的文件名。一个可选参数是访问模式,用于指示以哪种模式打开文件。访问模式可以是读取、写入、追加或其他。访问模式选项的完整列表如下:
r
:该选项用于以只读模式打开文件。如果没有提供访问模式选项时,该选项为默认选项:f = open('abc.txt') #和下面的打开方式是等价的 f = open('abc.txt', 'r')
t
:该选项用于用文本模式打开文件,这是默认的打开方式;f = open('abc.txt') f = open('abc.txt', 'r') # 上面两种打开方式,等价于下面的打开方式: f = open('abc.txt', 'rt')
b
:该选项用于用二进制方式打开文件;
注意: 打开文件的文本模式和二进制模式的概念来自于C
语言,这里已罗列的和将要罗列的读、写和添加等打开模式,也是来自于C
语言。文本模式和二进制模式在Linux
和Mac
上没有区别。在Windows
上的区别是,在写文件时,文本模式要把"\n"
转换为\r\n
;在读文件时,把"\r\n"
转换为\n
。此外,有的C
语言运行库,还会有字符编码转换功能,比如微软的C
运行库就有这样的功能。
-
a
: 该选项用于打开文件,在文件末尾添加内容:f = open('abc.txt', 'a')
-
w
:该选项用于打开文件以进行写入。如果文件不存在,它会创建一个新文件。一个新文件。如果文件存在,该选项将覆盖文件,文件中的任何现有内容都将被销毁。该文件中的任何内容都将被销毁:f = open('abc.txt', 'w')
-
x
:该选项用于打开一个文件进行独占写入。如果文件已经存在、 则会出错:f = open('abc.txt', 'x')
-
+
:该选项用于打开文件进行读和写,要和r
或w
配合使用,w+
和w+b
会在读写前把文件内容销毁,r+
和r+b
不会销毁文件内容:f = open('abc.txt', 'r+') f = open('abc.txt', 'w+')
如果是用文本模式打开文件,还可以在打开文件时指明文件中字符的编码。如果不指明,这个编码则依赖于当前的系统的当前编码;如果是用二进制模式打开文件,则不能指明编码。下面是把文件中字符当成utf-8
编码打开文件读和写:
f = open('abc.txt', mode = 'r', encoding =