如何在Python中擦除文本文件的文件内容?

我有我想要在Python中删除的文本文件。 我怎么做?

在python中:

open('file.txt', 'w').close() 

或者,如果您已经有一个打开的文件:

 f = open('file.txt', 'r+') f.truncate() 

在C ++中,你可以使用类似的东西。

不是一个完整的答案,更多的是对ondra的答案的扩展

当使用truncate() (我的首选方法)确保你的光标在所需的位置。 当一个新文件打开阅读 – open('FILE_NAME','r')它的光标默认为0。 但是如果你已经在你的代码中parsing了这个文件,确保再次指向文件的开头,即truncate(0)默认情况下, truncate()从当前cusror位置开始截断文件的内容。

一个简单的例子

 open("filename","w").close() 

你必须覆盖文件。 在C ++中:

 #include <fstream> std::ofstream("test.txt", std::ios::out).close(); 

在你的程序中将文件指针指定为null将会删除对该文件的引用。 该文件仍然存在。 我认为c stdio.hremove()函数就是你在那里寻找的东西。 不确定Python。

从用户@jamylak另一种forms的open("filename","w").close()

 with open('filename.txt','w'): pass 

除非需要擦除结尾,否则不能从文件中“擦除”。 要么覆盖“空”值,要么读取您关心的文件的部分,并将其写入另一个文件。

由于文本文件是连续的,所以不能直接删除它们上的数据。 您的select是:

  • 最常见的方法是创build一个新的文件。 从原始文件中读取并在新文件上写入除了要擦除的部分以外的所有内容。 当所有文件都被写入时,删除旧文件并重命名新文件,使其具有原始名称。
  • 您也可以从您想要更改的位置截断并重写整个文件。 寻求指出你想要改变,并把剩下的文件读到内存中。 找回相同的点,截断文件,并写回没有你想擦除的部分的内容。
  • 另一个简单的select是用另一个相同长度的数据覆盖数据。 为此,寻求确切的位置并写入新的数据。 限制是它必须有完全相同的长度。

查看seek / truncate函数/方法来实现上面的任何想法。 Python和C都有这些function。

当使用with open("myfile.txt", "r+") as my_file: ,我在myfile.txt得到奇怪的零,尤其是因为我正在读取文件。 为了工作,我必须首先用my_file.seek(0)my_file的指针改为文件的开头。 然后我可以做my_file.truncate()清除文件。