打开要追加的文件

2024-05-08 15:22:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是想了一想,想在这里找个更好的地方问问。出于好奇,是否有人知道是否要打开文件进行追加,如:

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

我只是想知道,打开一个文件进行追加是否实质上是在做第二个块,打开进行写入,然后在幕后寻找文件的结尾。


Tags: 文件ofnamefor地方seekopenfile
3条回答

在我的终端上玩了一会儿之后,我可以说在使用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 documentation,open函数接受类似于C的stdio的the fopen function模式。

“W”将删除内容数据,然后寻找最终位置。因此,您将以一个空文件结尾,指针指向BOF而不是EOF。使用“A”保存旧数据。

不是真的。使用append会强制任何写操作转到文件的末尾,在那里您可以使用写操作寻找到另一个位置。

相关问题 更多 >