2016-05-30 3 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を返します。私はまず第一に、あなたwbフラグでopen場合、そのファイルのみ書き込み可能モードになります

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

バイナリモードでファイルを開いていないときに動作します( 'fo = open ( "samp.txt"、 "w") ')。 Python 2でそのまま動作するはずです。 – Matthias

答えて

0

コマンドラインに一つずつ入りました。読み書きの両方をしたい場合は、wb+フラグが必要です。毎回ファイルが切り捨てられないようにするには、rb+が必要です。

ファイルは、ファイル内の特定の場所を指すポインタを持つストリームです。 [pointer before writing](ファイルのあなたのケースでは初め、すなわち0)プラス[length of written bytes](ファイルの終わりであるあなたのケース17、中)であなたが

f0.write("my second attempt") 

を書く場合は、ポインタを指します。ファイル全体を読み込むためには、ポインタを先頭に戻してから読み返す必要があります。

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

私はr +作成した後も申し訳ありませんが、忘れてしまいました –

+0

質問が編集されました@freakish –

+0

@anandmbs最後まで私の答えを読んでいますか?ファイルの最後から読み込むので空を返します。 'f0.seek(0)'が必要です。 – freakish

関連する問題