Ist dies der sauberste Weg, um eine Liste in eine Datei zu schreiben, da writelines()
fügt keine Zeilenumbrüche ein?
file.writelines(["%s\n" % item for item in list])
Es scheint, als gäbe es eine Standardmethode...
Ist dies der sauberste Weg, um eine Liste in eine Datei zu schreiben, da writelines()
fügt keine Zeilenumbrüche ein?
file.writelines(["%s\n" % item for item in list])
Es scheint, als gäbe es eine Standardmethode...
Vor kurzem habe ich Path für nützlich befunden. Es hilft mir dabei, nicht immer with open('file') as f
und dann in die Datei zu schreiben. Ich hoffe, das ist für jemanden nützlich :).
from pathlib import Path
import json
a = [[1,2,3],[4,5,6]]
# write
Path("file.json").write_text(json.dumps(a))
# read
json.loads(Path("file.json").read_text())
Sie können auch Folgendes durchgehen:
Beispiel:
my_list=[1,2,3,4,5,"abc","def"]
with open('your_file.txt', 'w') as file:
for item in my_list:
file.write("%s\n" % item)
Ausgabe:
En your_file.txt
Elemente gespeichert werden:
1
2
3
4
5
abc
def
Ihr Skript speichert ebenfalls wie oben beschrieben.
Andernfalls können Sie Pickles verwenden
import pickle
my_list=[1,2,3,4,5,"abc","def"]
#to write
with open('your_file.txt', 'wb') as file:
pickle.dump(my_list, file)
#to read
with open ('your_file.txt', 'rb') as file:
Outlist = pickle.load(file)
print(Outlist)
Ausgabe: [1, 2, 3, 4, 5, 'abc', 'def']
Es speichert die Liste wie eine Liste ab, wenn wir sie laden, können wir sie lesen.
Auch von simplejson
Möglicherweise dieselbe Ausgabe wie oben
import simplejson as sj
my_list=[1,2,3,4,5,"abc","def"]
#To write
with open('your_file.txt', 'w') as file:
sj.dump(my_list, file)
#To save
with open('your_file.txt', 'r') as file:
mlist=sj.load(file)
print(mlist)
Diese Logik konvertiert zunächst die Elemente in der Liste in string(str)
. Manchmal enthält die Liste ein Tupel wie
alist = [(i12,tiger),
(113,lion)]
Mit dieser Logik wird jedes Tupel in einer neuen Zeile in die Datei geschrieben. Wir können später eval
beim Laden der einzelnen Tupel beim Lesen der Datei:
outfile = open('outfile.txt', 'w') # open a file in write mode
for item in list_to_persistence: # iterate over the list items
outfile.write(str(item) + '\n') # write to the file
outfile.close() # close the file
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
53 Stimmen
Beachten Sie bitte, dass
writelines
fügt keine Zeilenumbrüche hinzu, weil es diereadlines
was sie ebenfalls nicht entfernt.1 Stimmen
Es zwischen json vs pickle. lesen Sie alles darüber - stackoverflow.com/questions/27745500/