[英]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.