2015-09-01 240 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' –