StattGast009 hat geschrieben:Was meinst du damit?
Code: Alles auswählen
f = file('files.txt', 'r')
Code: Alles auswählen
f = file('files.txt', 'rb')
Code: Alles auswählen
f = file('files.txt', 'w')
Code: Alles auswählen
f = file('files.txt', 'wb')
StattGast009 hat geschrieben:Was meinst du damit?
Code: Alles auswählen
f = file('files.txt', 'r')
Code: Alles auswählen
f = file('files.txt', 'rb')
Code: Alles auswählen
f = file('files.txt', 'w')
Code: Alles auswählen
f = file('files.txt', 'wb')
Wieso denn?BlackJack hat geschrieben:Und pickle Dateien bitte immer im Binärmodus mit 'rb' bzw. 'wb' öffnen.
Weil das auch im Protocoll 0 noch Binärdaten sind, deren Zeilenumbrüche sind immer so wie sie sind (ich weiß nicht ob es CRLF ist oder etwas anderes), wenn man die Zeilenumbrüche ändert funktionierts nicht mehr. Zumindest habe ich das mal irgendwo gelesen.N317V hat geschrieben:Wieso denn?BlackJack hat geschrieben:Und pickle Dateien bitte immer im Binärmodus mit 'rb' bzw. 'wb' öffnen.
Wenn ich das aber so mache, dann meckert er bei der nächsten zeile "daten2 = pickle.loads( f.read() )" rum.Leonidas hat geschrieben:StattGast009 hat geschrieben:Was meinst du damit?besserCode: Alles auswählen
f = file('files.txt', 'r')
und stattCode: Alles auswählen
f = file('files.txt', 'rb')
besserCode: Alles auswählen
f = file('files.txt', 'w')
Code: Alles auswählen
f = file('files.txt', 'wb')
Code: Alles auswählen
f=file("files2.txt",'rb')
daten2 = pickle.loads( f.read() )
f.close()
Traceback (most recent call last):
File "C:\xxy.py", line 43, in -toplevel-
daten2 = pickle.loads( f.read() )
File "C:\Python24\lib\pickle.py", line 1394, in loads
return Unpickler(file).load()
File "C:\Python24\lib\pickle.py", line 872, in load
dispatch[key](self)
File "C:\Python24\lib\pickle.py", line 980, in load_string
raise ValueError, "insecure string pickle"
ValueError: insecure string pickle
Dafür hat pickle ja auch die load()-Funktion (ohne das s hintendran, welches auf String weist):gAst005 hat geschrieben:Mein Codeabschnitt:Code: Alles auswählen
f=file("files2.txt",'rb') daten2 = pickle.loads( f.read() ) f.close()
Code: Alles auswählen
f = file("files2.txt",'rb')
daten2 = pickle.load(f)
f.close()