打开一个文件进行追加


问题内容

我只是想了一下,然后才想到在这里问什么更好的地方。出于好奇,有人知道是否打开文件进行追加,例如:

file_name = "abc"
file_handle = open(file_name,"a")

本质上与打开文件进行写入和末尾查找相同:

file_name = "abc"
file_handle = open(file_name,"w")
file_handle.seek(0,2) # 0 for offset, 2 for end-of-file

我只是想知道打开文件进行追加实际上是否在后台进行第二个步骤,即先进行写操作,再进行对文件末尾的查找。


问题答案:

在终端中播放了一些之后,我可以说使用python 2.7.1在ubuntu linux 11.04上有什么区别。

打开时,以“ w”开头的文件将被截断(即擦除其内容)。换句话说,仅使用打开文件open('file.txt', 'w')并退出就会留下一个空文件。

以“ a”打开将使文件内容完整无缺。因此,打开open('file.txt', 'a')和退出都不会更改文件。

这也适用于打开的更新选项。该命令open('file.txt', 'w+')将保留一个空文件,而命令open('file.txt', 'r+')open('file.txt', 'a+')将保留不变的文件。

选项“ r +”和“ a +”之间的区别是其他人建议的行为。选项“ r +”使您可以在文件中的任何位置进行写操作,而“ a
+”则将所有写操作都强制写入文件的末尾,无论您将文件的当前位置设置在何处。

如果您想进一步研究,根据python文档,函数open接受的模式类似于C的stdio的fopen函数