我已经尽了全力来打印我的文本文件中的所有内容中的所有内容。但我仍然无法理解错在哪里。这里是我的代码:(蟒蛇)不能打印的文本文件
Input = input("TYPE: ")
with open("tryme.txt","a+") as f:
f.write(Input + "\n\n\n")
x = f.read()
print(x)
我已经尽了全力来打印我的文本文件中的所有内容中的所有内容。但我仍然无法理解错在哪里。这里是我的代码:(蟒蛇)不能打印的文本文件
Input = input("TYPE: ")
with open("tryme.txt","a+") as f:
f.write(Input + "\n\n\n")
x = f.read()
print(x)
a+
打开读取和附加(在文件的末尾写入)。如果文件不存在,则会创建文件 。读取 的初始文件位置位于文件的开头,但输出始终附加到文件的末尾 。
您应该使用f.seek()
将文件偏移量设置为文件的开头。
with open("tryme.txt","a+") as f:
f.write(Input + "\n\n\n")
f.seek(0)
x = f.read()
print(x)
输出:
TYPE: test2
test1
test2
希望这有助于。
后写入文件,你的读者的当前位置是在文件的结尾。如果你想阅读整个文件,你需要返回到开始。
尝试
Input = input("TYPE: ")
with open("tryme.txt","a+") as f:
f.write(Input + "\n\n\n")
f.seek(0,0)
x = f.read()
print(x)
如果问题不大,f.seek(0,0)'的意思是什么?第二个零的目的是什么?无论如何,感谢您的帮助! – harthart
https://www.tutorialspoint.com/python/file_seek.htm 的'寻求()'是何处的第二个参数。它指定我们是基于当前位置,基于文件的开始,还是基于文件的结尾取得偏移量。它默认为0,所以如果你只是想跳转到开头就没有必要包含它 –
为了进一步清晰起见,'f.seek(0,0)'表示在文件f中,从头开始,去转发一个0的偏移量。如果你从这个位置写下你正在提交的文件,并且如果你读了,你可以阅读那个位置之后的所有内容。您可以指定文件中的任何位置。如果你想要结束你可以做'f.seek(0,2)'或者如果你想在当前位置f.seek(n,1)' –
帮助很大!谢谢,我今天学到了一些新东西。 – harthart