我正在尝试读取一个文件,然后将其写回同一个文件,每个字符之间有一个空格,一个设置大写,一个设置正常。
我可以正常写任何一套,但我不能正常写两个。
这是我的代码
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
那么为什么它会回归乱码,我该怎么做才能解决这个问题?
答案 0 :(得分:0)
在再次写入文件之前,您需要截断文件:
f.seek(0)
f.truncate()