0

我正在尝试读取一个文件,然后将其写回同一个文件,每个字符之间有一个空格,一组大写,一组正常。

我可以正常写任何一组,但我不能正常写这两个。

这是我的代码

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

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

4

1 回答 1

0

您需要在再次写入文件之前截断文件:

f.seek(0)
f.truncate()
于 2013-04-12T20:45:13.330 回答