您的位置:

Python写入文件的常用方法

一、使用open()函数打开文件

Python提供了内置的open()函数,用于打开并创建文件。其语法如下:

f = open(file, mode)

其中,file是文件名(可以包含路径),mode表示打开文件的模式,包括:

'r':读模式(默认)

'w': 写模式,如果文件不存在则创建文件,如果存在则截断文件

'a': 追加模式,如果文件不存在则创建文件

'b': 二进制模式

't': 文本模式(默认)

'x': 创建并写入新文件

下面是一个例子,创建一个新文件并写入内容:

with open('myfile.txt', 'w') as f:
    f.write('Hello, world!')

这个例子中,我们打开一个名为myfile.txt的文件,并指定打开模式为写模式('w')。如果该文件不存在,则会创建一个新的文件,如果已经存在,则会清空文件内容并打开文件以供写入。我们使用了with语句来自动关闭文件,以便在代码块执行结束时释放资源。

二、使用write()方法写入文件

open()函数打开文件后,我们就可以使用其返回的文件对象f来写入文件。其中,write()方法用于写入数据。如果我们打开文件的模式是'w'或'x',则可以使用write()方法写入数据。例如:

with open('myfile.txt', 'w') as f:
    f.write('Hello, world!')

在上面的代码中,我们使用write()方法向文件中写入了Hello, world!这行字符串。当我们运行此代码后,我们可以在当前目录下找到名为myfile.txt的文件,并打开它看到里面已经写入了我们想要的内容。

三、使用writelines()方法写入多行数据

如果我们想要一次性写入多行数据,可以使用writelines()方法。这个方法接受一个列表或可迭代对象,每个元素都是一行字符串,它将它们写入文件,例如:

lines = ['Hello, world!\n', 'Python is awesome!\n', 'We love programming!\n']
with open('myfile.txt', 'w') as f:
    f.writelines(lines)

在上面这个例子中,我们定义了一个包含多个字符串的列表lines,然后使用writelines()方法将列表中的每个元素都写入文件。
需要注意的是,每行字符串都应该以\n结尾,表示换行。否则它们将被写成一行。

四、使用seek()方法移动文件指针

我们可以使用seek()方法在文件中移动指针。指针是一个文件内部的位置标记,它指示了下一次读或写会发生在什么位置。seek()方法接受一个整数参数,表示要移动的字节数。这个参数可以是正数、负数和零。

假设我们已经打开了一个文件,并写入了一些数据:

with open('myfile.txt', 'w') as f:
    f.write('Hello, world!')

现在,我们可以使用seek()方法向后移动指针:

with open('myfile.txt', 'r+') as f:
    f.seek(6)
    f.write('Python')

在这个例子中,我们打开了文件,并将打开模式设置为'read+'。这意味着我们既可以读取文件内容,也可以写入内容。
然后,我们使用seek(6)方法将指针移动到位置6(即文件中的'w'字母)。接下来,我们使用write('Python')方法覆盖了'world'中的'w'。

五、使用truncate()方法截断文件

truncate()方法可以截断文件,即删除指定位置之后的所有内容。例如,我们可以从文件的开头开始截断:

with open('myfile.txt', 'r+') as f:
    f.truncate(5)

在这个例子中,我们使用truncate()方法从文件的开头开始截断,并将文件的大小截断为5个字符。这意味着,'Hello'将作为文件的唯一内容。

六、关闭文件

打开文件后,Python将为其分配内存和其他资源。因此,当我们完成对文件的操作时,应该关闭文件以释放资源。

为了简化这个过程,我们可以使用Python的with语句来处理文件。在with语句的代码块中,文件将自动关闭:

with open('myfile.txt', 'w') as f:
    f.write('Hello, world!')

在with语句的块之外访问文件将导致操作系统资源泄漏,造成程序崩溃。