2017-09-19 32 views
0

バイナリ(* .bin)ファイルに書き込もうとしましたが、問題が発生しました。 は、私は次のコードを使用すると、それはファイルに何も書き込みません:私は次のコードを使用する場合ファイルへの書き込みに失敗しましたか?

abc = str.encode("sabd") 
f=open("sbd.bin",'wb') 
f.write(abc) 
f.close 

しかし、それがうまく機能:

abc = str.encode("sabd") 
with open("sbd.bin",'wb') as f: 
    f.write(abc) 

私は勝利+のpython3を使用しています。

+0

Linuxで私のためにworketを書き、 'write'をbytearrayに渡してみてください。多分それをやるでしょう – zython

+0

あなたは* f.close' *を呼び出す必要があります。したがって、 'f.close()'を使用してください。もっと良いことに、 'with'ステートメントを使用してください... –

答えて

3

f.closeの代わりに、f.close()を試してみてください。これは、close()がメソッドであるため、これより優れているかどうかを確認してください。

+0

ありがとうございました。方法は私のために働く。 –

0

これは、ファイルが作成されたり書き込まれなかったりするため、データをファイルにフラッシュすることをお勧めします。例えばfile.flush()は存在しない場合はファイルを作成し、それにデータを書き込みます。

ソース:https://www.tutorialspoint.com/python3/file_flush.htmそして、cdlaneの提案によれば、変数を取得しないメソッドを呼び出すときには、ファイルをfile.close()で閉じます。

+0

あなたが提供したリンクは「Pythonはファイルを閉じるときに自動的にファイルをフラッシュします」ので、この状況で自分で呼び出す必要はありません。 – cdlane

+0

はい、 'file.close()'が 'file.flush()'を呼び出すのを忘れてしまいました。 – CPPNinja

関連する問題