2012-03-19 152 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

相关问题