message = 'aaa'
for alpha in message:
num = ord(alpha) + 2
ans = chr(num)
print(ans)
file = open('f.txt', 'w')
file.write(ans)
file.close()
print(ans)
按预期打印ccc,但file.write(ans)
仅写入'c'。怎么不打印整个字符串?非常感谢。
答案 0 :(得分:1)
write
方法开始从文件中的某个(当前)位置写入。由于您在每次迭代时都打开文件,因此write将始终从文件的开头开始,覆盖现有数据。在您的情况下,它将替换现有的字母 c 。
您需要在循环之前打开文件,然后在循环之后将其关闭。这将使文件保留位置(使用file.tell()
检查):
message = "aaa"
file = open('f.txt', 'w')
for alpha in message:
num = ord(alpha) + 2
ans = chr(num)
print(ans)
file.write(ans)
file.close()
或者,更好的是,使用上下文管理器:
message = "aaa"
with open('f.txt', 'w') as file:
for alpha in message:
num = ord(alpha) + 2
ans = chr(num)
print(ans)
file.write(ans)