2015-09-01 292 views
2

的返回大小我有以下代码:打印(f.read())字符串

with open("hello.txt", "r+") as f: 
    f.write("Hello Python!\n") 
    print(f.read()) 

但产量是奇怪:“您好!Python的

14 
Hello Python! 

字符串有13个字符(也许出于某种原因它返回13 + 1?)

更糟糕的是:我只是想增加字符串的大小:

... with open("hello.txt", "r+") as f: 
...  f.write("Hello Python!!\n") 
...  print(f.read()) 
...  
... 
15 
ello Python! 

>>> with open("hello.txt", "r+") as f: 
...  f.write("Hello Python!!!\n") 
...  print(f.read()) 
... 
16 
llo Python! 

然后我打开文件hello.txt的和内容是

Hello Python!!! 
llo Python! 

我看了一些文档这里https://docs.python.org/3.4/tutorial/inputoutput.html,但它不是太深打印中(file.read())...我的Python版本是3.4.3,我的操作系统是Linux操作系统。

+1

鉴于你已经包含'\ n',为什么它让你感到惊讶,数量包括它? – jonrsharpe

+0

真是遗憾......我只是错过了......谢谢@jonrsharpe –

回答

1

Python交互式控制台自动在输出中打印表达式的结果。

例如:

>>> 1 + 1 
2 

f.write()将返回该文件中写入字符的数量,和Python的REPL是您print(f.read())行之前打印该号码。

这不会发生在普通脚本中,因为表达式结果不会自动打印。

+0

感谢您的回答!我应该考虑终端的互动方面。 当您的信息停止使用交互式终端后,我将脚本作为脚本运行,以帮助我理解'$ python my.py' –