2016-05-30 52 views
-1

我是一個新的Python學習者,現在我已經進入文件處理。python命令行文件處理不起作用?我工作正常嗎?

我試過解決我的問題,但失敗了,所以張貼我的問題。重複之前請考慮我的問題。

我試圖創建一個文件,它的工作。在文件中寫入 也起作用。

但是當我試圖讀取文件中的文本或值時,它將返回空白。

我使用命令行終端來使用python並在Ubuntu OS中運行。

我試過的代碼如下。該文件在所需位置創建,並且書面文本也存在。

f0=open("filehandling.txt","wb") 
f0.write("my second attempt") 
s=f0.read(10); 
print s 

我也試過用wb +,r +。但它只是返回爲空

編輯1:

我附上了下面的代碼。我在命令行

fo = open("samp.txt", "wb") 
fo.write("Text is here\n"); 

fo.close() 

fo = open("samp.txt", "r+") 
str = fo.read(10); 

print "Read String is : ", str 

fo.close() 
+0

適用於我(在Python 3上)當我不以二進制模式打開文件('fo = open (「samp.txt」,「w」)')。應該像Python 2一樣工作。 – Matthias

回答

0

首先,進入一個接一個,如果你openwb標誌那麼該文件將只在寫入的模式。如果你想讀寫,那麼你需要wb+標誌。如果您不希望每次都截斷文件,則需要rb+

現在文件是指向文件內某個位置的指針的流。如果你寫

f0.write("my second attempt") 

然後在[pointer before writing]指針點(在你的情況下,該文件的開頭,即0)加[length of written bytes](你的情況17,這是文件的末尾)。爲了讀取整個文件,您必須將該指針移回開頭,然後再讀取:

f0.seek(0) 
data = f0.read() 
+0

我也試過用r +創建對不起,我忘了提及它 –

+0

問題是編輯@freakish –

+0

@anandmbs你讀過我的答案,直到最後?由於您從文件末尾讀取,它將返回空白。你需要'f0.seek(0)'。 – freakish

相關問題