2017-09-19 4 views
0

Ich habe versucht, in eine binäre Datei (*. Bin) zu schreiben, und ich habe ein Problem gefunden. Wenn ich den folgenden Code verwenden, ist es nicht etwas in die Datei schreiben:Fehler beim Schreiben in Datei?

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

Allerdings, wenn ich den folgenden Code verwenden, es funktioniert gut:

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

Ich benutze Win + Python3.

+0

ich arbeite für Linux, versuchen Sie, 'schreiben' ein Bytearray, vielleicht wird es das tun – zython

+0

müssen Sie * rufen' f.close' *. Also benutze 'f.close()'. Besser noch, verwenden Sie eine 'mit' Anweisung ... –

Antwort

3

Anstatt f.close, versuchen Sie f.close(), um zu sehen, ob das besser funktioniert, da close() eine Methode ist.

+0

Vielen Dank. Die Methode funktioniert für mich. –

0

Ich empfehle, die Daten in die Datei zu löschen, da Sie dies vermissen und die Datei nicht erstellt oder geschrieben werden würde. z.B. file.flush() erstellt die Datei, wenn nicht vorhanden und schreibt die Daten dorthin.

Quelle: https://www.tutorialspoint.com/python3/file_flush.htm und wie von cdlane vorgeschlagen, schließen Sie die Datei mit file.close(), da Sie eine Methode aufrufen, die keine Variable oder etwas erhält.

+0

Da der Link, den Sie angegeben haben, "Python löscht die Dateien beim Schließen automatisch" löscht, müssen Sie ihn in dieser Situation nicht selbst aufrufen. – cdlane

+0

ja, vergessen zu sagen, dass 'file.close()' '' file.flush() 'aufruft – CPPNinja

Verwandte Themen