Python 写入文件
要在Python中将数据写入文件,您需要打开一个文件。任何与输入和输出流交互的对象都被称为文件对象。Python的内置函数open()返回一个文件对象。
使用open()函数获得文件对象后,可以使用write()方法将任何字符串写入文件。需要注意的是,Python字符串可以包含二进制数据而不仅仅是文本。
write()方法在字符串末尾不会添加换行符(‘\n’)。
语法
这里,传递的参数是要写入打开的文件中的内容。
示例
上述方法将创建foo.txt文件,并将给定内容写入该文件,最后关闭该文件。程序本身没有任何输出,但是如果您使用任何文本编辑器应用程序(如记事本)打开此文件,它将具有以下内容 –
以二进制模式写入
默认情况下,文件对象上的读/写操作是针对文本字符串数据的。如果我们想处理不同类型的文件,如媒体文件(mp3)、可执行文件(exe)、图片文件(jpg)等,我们需要在读/写模式前添加’b’前缀。
以下语句将把字符串转换为字节,并写入文件中。
将文本字符串转换为字节也可以使用encode()函数。
追加到文件
当以’w’模式打开任何现有文件以存储额外文本时,原来的内容会被删除。每当以写权限打开一个文件时,它被视为一个新文件。要想将数据添加到现有文件中,请使用追加模式’a’。
语法
示例
当上述程序执行时,没有输出显示,但是会在foo.txt中追加一行。可以通过文本编辑器来验证。
使用w+模式
当文件以写入模式(使用’w’或’a’)打开时,在文件中任何早期的字节位置上都不可能执行写入操作。w+模式允许在不关闭文件的情况下使用write()和read()方法。文件对象支持seek()函数将流倒回到任何期望的字节位置。
以下是seek()方法的语法:
参数
- offset − 这是文件中读/写指针的位置。
-
whence − 这是可选的,默认值为0,表示绝对文件定位,其他值为1表示相对于当前位置的寻找,2表示相对于文件结尾的寻找。
让我们使用seek()方法来展示如何在文件上进行同时的读/写操作。
示例
以下程序以w+模式打开文件(即读写模式),添加一些数据。然后它在文件中寻找特定位置,并用新文本覆盖之前的内容。
输出
如果我们以读取模式打开文件(或在 w+ 模式下寻找起始位置),并读取文件内容,它会显示如下: