2017-02-26 70 views

回答

2

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 

希望这有助于。

+0

帮助很大!谢谢,我今天学到了一些新东西。 – harthart

1

后写入文件,你的读者的当前位置是在文件的结尾。如果你想阅读整个文件,你需要返回到开始。

尝试

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) 
+0

如果问题不大,f.seek(0,0)'的意思是什么?第二个零的目的是什么?无论如何,感谢您的帮助! – harthart

+0

https://www.tutorialspoint.com/python/file_seek.htm 的'寻求()'是何处的第二个参数。它指定我们是基于当前位置,基于文件的开始,还是基于文件的结尾取得偏移量。它默认为0,所以如果你只是想跳转到开头就没有必要包含它 –

+0

为了进一步清晰起见,'f.seek(0,0)'表示在文件f中,从头开始,去转发一个0的偏移量。如果你从这个位置写下你正在提交的文件,并且如果你读了,你可以阅读那个位置之后的所有内容。您可以指定文件中的任何位置。如果你想要结束你可以做'f.seek(0,2)'或者如果你想在当前位置f.seek(n,1)' –