2013-05-05 82 views
0

如果我對Python的外殼我想創建一個程序,讀取文本文件

>>> f= open(os.path.join(os.getcwd(), 'test1.txt'), 'r') 
>>> f.read() 
'plpw eeeeplpw eeeeplpw eeee' 
>>> f.close() 

鍵入此它的工作,但如果我創建了一個Python程序,我不工作。

import os 
f= open(os.path.join(os.getcwd(), 'test1.txt'), 'r') 
f.read() 
f.close() 

我用文本編輯器保存這段代碼。 如果我在python shell中執行這個程序,它什麼都不顯示。 請告訴我爲什麼..

回答

5

在交互式提示中,它會自動打印任何函數調用返回的內容。這意味着f.read()的返回值會自動打印。然而,當你把它放在一個程序中時,這不會發生,所以你必須自己去print才能顯示出來。

import os 
f = open(os.path.join(os.getcwd(), 'test1.txt'), 'r') 
print f.read() # use print(f.read()) in Python 3 
f.close() 

另一個建議我會做會使用with塊:

import os 
with open(os.path.join(os.getcwd(), 'test1.txt'), 'r') as f: 
    print f.read() 

這意味着你將不必擔心手工關閉文件之後。

+0

這對我很有幫助,謝謝! – user2351602 2013-05-05 10:03:43

+0

@ user2351602不用擔心。 – Volatility 2013-05-05 10:06:02

+0

僅供參考,您可以在Python 2.6+中通過在頂部添加'from __future__ import print_function'來使用'print'的等效函數。 – 2013-05-05 10:36:15