Python 写入文件

Python 写入文件

要在Python中将数据写入文件,您需要打开一个文件。任何与输入和输出流交互的对象都被称为文件对象。Python的内置函数open()返回一个文件对象。

fileObject = open(file_name [, access_mode][, buffering])

使用open()函数获得文件对象后,可以使用write()方法将任何字符串写入文件。需要注意的是,Python字符串可以包含二进制数据而不仅仅是文本。

write()方法在字符串末尾不会添加换行符(‘\n’)。

语法

fileObject.write(string)

这里,传递的参数是要写入打开的文件中的内容。

示例

# Open a file
fo = open("foo.txt", "w")
fo.write( "Python is a great language.\nYeah its great!!\n")

# Close opened file
fo.close()

上述方法将创建foo.txt文件,并将给定内容写入该文件,最后关闭该文件。程序本身没有任何输出,但是如果您使用任何文本编辑器应用程序(如记事本)打开此文件,它将具有以下内容 –

Python is a great language.
Yeah its great!!

以二进制模式写入

默认情况下,文件对象上的读/写操作是针对文本字符串数据的。如果我们想处理不同类型的文件,如媒体文件(mp3)、可执行文件(exe)、图片文件(jpg)等,我们需要在读/写模式前添加’b’前缀。

以下语句将把字符串转换为字节,并写入文件中。

f=open('test.bin', 'wb')
data=b"Hello World"
f.write(data)
f.close()

将文本字符串转换为字节也可以使用encode()函数。

data="Hello World".encode('utf-8')

追加到文件

当以’w’模式打开任何现有文件以存储额外文本时,原来的内容会被删除。每当以写权限打开一个文件时,它被视为一个新文件。要想将数据添加到现有文件中,请使用追加模式’a’。

语法

fileobject = open(file_name,"a")

示例

# Open a file in append mode
fo = open("foo.txt", "a")
text = "TutorialsPoint has a fabulous Python tutorial"
fo.write(text)

# Close opened file
fo.close()

当上述程序执行时,没有输出显示,但是会在foo.txt中追加一行。可以通过文本编辑器来验证。

Python is a great language.
Yeah its great!!
TutorialsPoint has a fabulous Python tutorial

使用w+模式

当文件以写入模式(使用’w’或’a’)打开时,在文件中任何早期的字节位置上都不可能执行写入操作。w+模式允许在不关闭文件的情况下使用write()和read()方法。文件对象支持seek()函数将流倒回到任何期望的字节位置。

以下是seek()方法的语法:

fileObject.seek(offset[, whence])

参数

  • offset − 这是文件中读/写指针的位置。

  • whence − 这是可选的,默认值为0,表示绝对文件定位,其他值为1表示相对于当前位置的寻找,2表示相对于文件结尾的寻找。

让我们使用seek()方法来展示如何在文件上进行同时的读/写操作。

示例

以下程序以w+模式打开文件(即读写模式),添加一些数据。然后它在文件中寻找特定位置,并用新文本覆盖之前的内容。

# Open a file in read-write mode
fo=open("foo.txt","w+")
fo.write("This is a rat race")
fo.seek(10,0)
data=fo.read(3)
fo.seek(10,0)
fo.write('cat')
fo.close()

输出

如果我们以读取模式打开文件(或在 w+ 模式下寻找起始位置),并读取文件内容,它会显示如下:

This is a cat race

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程