980 Stimmen

Schreiben einer Liste in eine Datei mit Python

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...

53 Stimmen

Beachten Sie bitte, dass writelines fügt keine Zeilenumbrüche hinzu, weil es die readlines was sie ebenfalls nicht entfernt.

1 Stimmen

Es zwischen json vs pickle. lesen Sie alles darüber - stackoverflow.com/questions/27745500/

5voto

Prox Punkte 279

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())

4voto

Bob Punkte 119

Warum versuchst du nicht

file.write(str(list))

3voto

MRUNAL MUNOT Punkte 383

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)

1 Stimmen

Vielen Dank für das Hinzufügen der Ausgabe, sehr hilfreich

2voto

Tahir Ahmad Punkte 61

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

1voto

Alex Ulyanov Punkte 199

Eine andere Art der Iteration und des Hinzufügens von Zeilenumbrüchen:

for item in items:
    filewriter.write(f"{item}" + "\n")

CodeJaeger.com

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.

Powered by:

X