2011-02-10 55 views
1

我做這一切的解釋..f.read上來空

loc1 = '/council/council1' 
file1 = open(loc1, 'r') 

在這一點上我可以做file1.read(),並打印文件的內容作爲字符串到標準輸出

,但如果我加入這個..

string1 = file1.read() 

串1回來空..我不知道我可能是做錯了。這似乎是最基本的東西!

如果我再次輸入file1.read(),輸出到標準輸出只是一個空字符串。所以,不知何故,我失去了我的文件,當我嘗試創建一個字符串file1.read()

回答

4

只能讀取一個文件一次。之後,當前的讀取位置在文件的末尾。

如果在重新閱讀之前添加file1.seek(0),則應該能夠再次閱讀內容。一個更好的辦法,但是,是讀入一個字符串中的第一次,然後保存在存儲器中:

loc1 = '/council/council1' 
file1 = open(loc1, 'r') 
string1 = file1.read() 
print string1 
-1

請確保您的位置是正確的。你的根目錄下是否有一個名爲/council的目錄?(/)?也可以使用,os.path.join()創建您的路徑

loc1 = os.path.join("/path","dir1","dir2") 
+0

這不回答問題。 – vaultah 2015-11-21 17:43:52

2

你不會失去它,你只需動偏移指針,以文件的末尾,並嘗試讀一些更多數據。由於它是文件的結尾,因此沒有更多數據可用,並且您會獲得空字符串。請嘗試重新打開文件或尋求零位:

f.read() 
f.seek(0) 
f.read() 
0

使用with是最好的語法來使用,因爲它使用後關閉該文件的連接(因爲Python 2.5):

with open('/council/council1', 'r') as input_file: 
    text = input_file.read() 
print(text)