我有我想在Python中擦除的文本文件。我怎麼做?如何在Python中擦除文本文件的文件內容?
回答
在蟒蛇:
open('file.txt', 'w').close()
或者,如果你已經打開的文件:
f = open('file.txt', 'r+')
f.truncate()
在C++中,你可以使用類似的東西。
'#包括
這個工作原因(在C++和python中)是因爲默認情況下,當您打開一個文件進行寫入時,它會截斷現有內容。所以實際上這是一種副作用,因此爲了清晰起見,我寧願顯式調用truncate(),即使它不是必需的。 – rmeador 2010-05-04 22:05:44
如果您已經使用「r +」打開文件,則爲「如果您已經打開文件」 – lajarre 2012-10-04 12:49:02
由於文本文件是連續的,所以不能直接刪除它們上的數據。您的選項有:
- 最常見的方法是創建一個新文件。從原始文件中讀取並在新文件上寫入除了要擦除的部分以外的所有內容。當所有文件都被寫入時,刪除舊文件並重命名新文件,使其具有原始名稱。
- 您也可以從要更改的點開始截斷並重寫整個文件。尋求指出你想要改變,並將其餘的文件讀入內存。找回相同的點,截斷文件,然後回寫沒有要擦除的部分的內容。
- 另一個簡單的選擇是用另一個長度相同的數據覆蓋數據。爲此,尋求確切的位置並寫入新的數據。限制是它必須具有完全相同的長度。
看那seek
/truncate
功能/方法來實現上述任何想法。 Python和C都有這些功能。
除非需要擦除結尾,否則無法從文件中「擦除」。要麼滿足於覆蓋「空」值,要麼讀取您關心的文件的各個部分,並將其寫入另一個文件。
在您的程序中將文件指針指定爲null將僅刪除對該文件的引用。該文件仍然存在。我認爲在中的remove()
函數就是你在那裏尋找的東西。不確定Python。
或者在unistd.h中使用unlink()。 – Void 2010-05-04 21:43:02
順便提一下,remove()和unlink()都會減少常規文件的引用計數,而不會實際刪除它。一旦參考計數下降到零,文件將被擦除。例如,如果你的進程打開了文件並且你調用了unlink()或者remove(),它將不會被刪除,直到文件關閉()d(即ref計數降到零 - 也假設沒有其他進程打開文件)。例如,爲了確保臨時文件在異常進程終止(例如open(),unlink(),執行文件IO,** CRASH **,close()NOT called)後不會被留下,這種行爲很有用。 – Void 2010-05-04 21:54:42
您必須覆蓋文件。在C++:
#include <fstream>
std::ofstream("test.txt", std::ios::out).close();
這對C++來說很好:) – Natim 2010-05-04 21:38:57
不需要'close()'調用。析構函數將關閉文件。所以你只需要創建一個臨時文件:'ofstream(「test.txt」);' – wilhelmtell 2010-05-04 21:40:45
我很困惑,直到我意識到原來的問題在Python和C++中都被問到了。 – user1717828 2018-02-21 16:35:06
不是一個完整的答案更多的延伸到ondra的答案
當使用truncate()
(我的首選方法)確保你的光標位於所需的位置。 當打開一個新文件進行讀取時 - open('FILE_NAME','r')
它的光標默認爲0。 但是,如果你分析你的代碼中的文件時,請務必在文件的開頭重新即truncate(0)
點默認情況下truncate()
截斷從當前cusror位置開始文件的內容。
從用戶@jamylak的open("filename","w").close()
的另一種形式是
with open('filename.txt','w'): pass
當使用with open("myfile.txt", "r+") as my_file:
,我得到了奇怪的零在myfile.txt
,尤其是因爲我第一次讀取文件。爲了工作,我必須首先將my_file
的指針更改爲my_file.seek(0)
的文件開頭。然後我可以做my_file.truncate()
清除文件。
- 1. 使用Python擦除文件中的行數擦除文件
- 2. Python如何繼續寫入文件而不擦除已存在的內容
- 3. 清除文本文件的內容
- 4. 如何刪除phonegap中的文本文件的內容?
- 5. 我如何清除一個文本文件的內容在PHP
- 6. file_put_contents擦除文件
- 7. 如何使用python擦除文件中的所有文本,但不刪除/重新創建文件?
- 8. 如何擦除文本文件上的數據?
- 9. 從文本部件中刪除內容
- 10. 如何安全地擦除Python中的文件/目錄?
- 11. 如何擦除python 3中的3個擱置文件?
- 12. 用python在zapier中讀取文本文件的內容
- 13. 如何在GWT的Flextable中顯示文本文件的內容?
- 14. 如何清除文件的內容
- 15. 如何安全地擦除文件?
- 16. 如何刪除Python中文件夾的內容?
- 17. 如何在文本文件中寫入「const char *」的內容?
- 18. 如何更改文本文件的內容在Java中
- 19. 如何在Java中掩蓋文本文件的內容
- 20. 如何在字符串中保存文本文件的內容
- 21. 如何保存文本框的內容在文件中
- 22. 清除文件的內容
- 23. 如何洗牌文本文件的內容中的n行集團在Python
- 24. 在Tcl中刪除文件的內容
- 25. Java文件I/O - 文本文件 - 如何檢查內容?
- 26. 從文件中讀取文本的XCODE擦除變量
- 27. 如何提取文本文件中的信息,在python內的rar文件?
- 28. 如何文本文件2的內容添加到文本文件1
- 29. 從c中的文本文件中刪除一些內容#
- 30. 在Compact Framework中安全擦除文件
Python _and_ C++?爲什麼?你可以在一箇中完成它,而你可以在另一箇中完成它 - 但是如果選擇了這個選擇,那麼使用Python會更容易。 – wilhelmtell 2010-05-04 21:23:39
已經給出答案的人已經說過這是不可能的..所以你想告訴我如何輕鬆地在Python中做到這一點? – Hick 2010-05-04 21:25:30