我有要在Python中删除的文本文件。我该怎么做?
答案 0 :(得分:186)
在python中:
open('file.txt', 'w').close()
或者,如果您已经打开了文件:
f = open('file.txt', 'r+')
f.truncate(0) # need '0' when using r+
在C ++中,你可以使用类似的东西。
答案 1 :(得分:22)
对ondra的答案的扩展不是一个完整的答案
使用truncate()
(我的首选方法)时,请确保光标位于所需位置。
当打开一个新文件进行读取 - open('FILE_NAME','r')
时,它的光标默认为0。
但是如果你在代码中解析了文件,请确保再次指向文件的开头,即truncate(0)
默认情况下,truncate()
会截断从当前cusror位置开始的文件内容。
答案 2 :(得分:10)
以“写入”模式打开文件会将其清除,您无需特意写入:
open("filename", "w").close()
(你应该关闭它,因为文件自动关闭的时间可能是特定于实现的)
答案 3 :(得分:6)
您必须覆盖该文件。在C ++中:
#include <fstream>
std::ofstream("test.txt", std::ios::out).close();
答案 4 :(得分:6)
来自用户@jamylak的另一种形式open("filename","w").close()
是
with open('filename.txt','w'): pass
答案 5 :(得分:3)
使用with open("myfile.txt", "r+") as my_file:
时,我在myfile.txt
中得到奇怪的零,特别是因为我先读取文件。要使其工作,我必须首先使用my_file
将my_file.seek(0)
的指针更改为文件的开头。然后我可以my_file.truncate()
清除文件。
答案 6 :(得分:1)
在程序中将文件指针指定为null只会删除对该文件的引用。该文件仍在那里。我认为c remove()
中的stdio.h
函数就是你在那里寻找的东西。不确定Python。
答案 7 :(得分:0)
由于文本文件是连续的,因此无法直接删除它们上的数据。您的选择是:
查看seek
/ truncate
函数/方法以实现上述任何想法。 Python和C都有这些功能。
答案 8 :(得分:0)
除非您需要删除结尾,否则无法从原地“擦除”文件。要么满足于覆盖“空”值,要么阅读您关心的文件部分并将其写入另一个文件。
答案 9 :(得分:0)
如果安全性对您很重要,那么打开文件进行写入并再次关闭它是不够的。至少部分信息仍将存储在存储设备上,例如,可以通过使用光盘恢复实用程序找到。
例如,假设您正在删除的文件包含生产密码,需要在当前操作完成后立即删除。
使用完毕后对文件进行零填充有助于确保敏感信息被破坏。
在最近的一个项目中,我们使用了以下代码,该代码适用于小型文本文件。它用零行覆盖现有内容。
import os
def destroy_password_file(password_filename):
with open(password_filename) as password_file:
text = password_file.read()
lentext = len(text)
zero_fill_line_length = 40
zero_fill = ['0' * zero_fill_line_length
for _
in range(lentext // zero_fill_line_length + 1)]
zero_fill = os.linesep.join(zero_fill)
with open(password_filename, 'w') as password_file:
password_file.write(zero_fill)
请注意,零填充不会保证您的安全。如果您真的担心,最好将零填充和使用专家实用程序(如File Shredder或CCleaner)来清除您的“空”空间驱动。
答案 10 :(得分:0)
写入和读取文件内容
def writeTempFile(text = ''):
filePath = "/temp/file1.txt"
if not text: # If blank return file content
f = open(filePath, "r")
slug = f.read()
return slug
else:
f = open(filePath, "a") # Create a blank file
f.seek(0) # sets point at the beginning of the file
f.truncate() # Clear previous content
f.write(text) # Write file
f.close() # Close file
return text
对我有用
答案 11 :(得分:0)
您也可以使用此方法(基于上述一些答案):
file = open('filename.txt', 'w')
file.write('')
file.close()
当然,这是清除文件的一种非常糟糕的方法,因为它需要很多行代码,但是我只是写了此文件,以向您展示它也可以用此方法完成。
编码愉快!