2012-03-19 30 views
2

我想基本上從剪貼板複製什麼,並以UTF-8編碼將其粘貼到文件中,但是我試過什麼,該文件有'?'其中的符號和Anscii編碼...如何使用python擦除文件中的所有文本,但不刪除/重新創建文件?

但我發現,如果有一個文件已經在utf-8編碼,然後無論我粘貼在它手動(刪除什麼已經),不會有'?'在裏面。

因此,如果有一種方法可以清除utf-8文件中的內容,然後從剪貼板複製什麼內容並將其寫入該文件,那將會很棒。

如果我創建的文件,它總是最終被Ancii ...

現在我已經知道了如何從剪貼板複製並寫入到一個文件,它只是如何清除文件,這是令人困惑...

+0

如果你打開一個文件進行寫入,它會自動清除該文件... 如:open(「file.txt」,「w」) – arboc7 2012-03-19 00:42:58

+0

你不能只打開文件進行寫入和截斷即不附加)並寫入'utf-8'編碼的數據給它? – hochl 2012-03-19 00:45:07

+0

這將重寫該文件。 – 2012-03-19 00:45:29

回答

5

以寫入/讀取模式打開文件(w+)會截斷該文件,如果該文件已存在,則不會重寫。

0

我能想到的(用我有限的知識),最簡單的辦法是讓二進制模式在Python的文件,因爲二進制文件支持UTF-8編碼:

fo=open("file.dat","wb") 
# The 'b' flag tells python to make it binary 

這應該與你想要什麼工作去做。

要擦除文件,只需使用'w'和'b'標誌給出現有的文件名。

+0

http://docs.python.org/tutorial/inputoutput.html#reading-and-writing-files – shashwat 2012-03-19 01:44:07

相關問題