繁体   English   中英

写入文件时乱码

[英]Gibberish when writing to file

我正在尝试读取一个文件,然后将其写回到同一文件中,每个字符之间都有一个空格,一组大写字母和一组普通字符。

我可以正常地写任何一个集,但是不能正常地写它们两个。

这是我的代码

import string
f = open('text.txt', 'r+')
file = f.read()
file = file.translate(None, string.whitespace)
file = file.translate(None, string.punctuation)
file = ' '.join(file)
file2 = file.upper()
f.seek(0)
f.write(file)
f.flush()
f.write(file2)
f.close()

然而,可悲的是这是行不通的。 在记事本中打开它时,所有的东西都是乱码。 在python中第二次读取时,它会完美地看到两组字符串,然后乱码直到出现错误。 例如:

 Y A L E T T E R S A Y I N G ô C    ƒ▬s ► É☺↨ ░☺≡≡≡ ≡≡≡                
 ☺☺☺        Ç>      ☺   ☺   ☺               ▼ ë☺                            ☺

那么结局应该是“麻烦不值钱”

因此,一切都只是半途而废,而不是像应该做的那样。

即使我不写文件,也会发生这种情况。

print file returns perfect string
print file2 returns perfect string
temp = file + file2
print temp returns gibberish part of the way through

那么,为什么它会返回乱码,我该怎么做才能解决此问题?

您需要截断文件,然后再次写入文件:

f.seek(0)
f.truncate()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM