Ez a legtisztább módja egy lista fájlba írásának, mivel a writelines()
nem illeszt be újsor karaktereket?
file.writelines(["%s\n" % item for item in list])
Úgy tűnik, mintha lenne egy szabványos módja...
Használhat egy hurkot:
with open('your_file.txt', 'w') as f:
for item in my_list:
f.write("%s\n" % item)
A Python 2-ben használhatod a
with open('your_file.txt', 'w') as f:
for item in my_list:
print >> f, item
Ha'lelkesedsz az egyetlen függvényhívásért, legalább a []
szögletes zárójeleket távolítsd el, így a kiírandó karakterláncok egyenként készülnek el (egy genexp, nem pedig egy listakompozíció) -- nincs okod az egész karakterlánc-lista materializálásához szükséges memóriát lefoglalni.
Mit fogsz csinálni a fájlokkal? Létezik ez a fájl embereknek, vagy más, egyértelmű átjárhatósági követelményekkel rendelkező programoknak?
Ha csak egy listát próbálsz szerializálni a lemezre, hogy később ugyanaz a python alkalmazás használhassa, akkor a listát pickleing kell pickleing.
import pickle
with open('outfile', 'wb') as fp:
pickle.dump(itemlist, fp)
Visszaolvasáshoz:
with open ('outfile', 'rb') as fp:
itemlist = pickle.load(fp)
Az egyszerűbb módja a következő:
outfile.write("\n".join(itemlist))
Egy generátor kifejezéssel biztosíthatjuk, hogy az itemlistában lévő összes elem karakterlánc legyen:
outfile.write("\n".join(str(item) for item in itemlist))
Ne feledjük, hogy az összes itemlist
listának a memóriában kell lennie, ezért ügyeljünk a memóriafogyasztásra.