Bir dosyaya liste yazmanın en temiz yolu bu mudur, çünkü writelines()
yeni satır karakterleri eklemez?
file.writelines(["%s\n" % item for item in list])
Standart bir yol varmış gibi görünüyor...
Bir döngü kullanabilirsiniz:
with open('your_file.txt', 'w') as f:
for item in my_list:
f.write("%s\n" % item)
Python 2'de şunları da kullanabilirsiniz
with open('your_file.txt', 'w') as f:
for item in my_list:
print >> f, item
Eğer tek bir fonksiyon çağrısı yapmak istiyorsanız, en azından köşeli parantezleri []
kaldırın, böylece yazdırılacak dizgiler her seferinde bir tane oluşturulur (listcomp yerine genexp) - tüm dizgi listesini gerçekleştirmek için gereken tüm belleği kullanmaya gerek yoktur.
Dosyayla ne yapacaksınız? Bu dosya insanlar için mi yoksa birlikte çalışabilirlik gereksinimleri net olan diğer programlar için mi var?
Eğer bir listeyi daha sonra aynı python uygulaması tarafından kullanılmak üzere diske serileştirmeye çalışıyorsanız, listeyi pickleing yapmanız gerekir.
import pickle
with open('outfile', 'wb') as fp:
pickle.dump(itemlist, fp)
Geri okumak için:
with open ('outfile', 'rb') as fp:
itemlist = pickle.load(fp)
Daha basit bir yol:
outfile.write("\n".join(itemlist))
Bir oluşturucu ifadesi kullanarak öğe listesindeki tüm öğelerin dizeler olmasını sağlayabilirsiniz:
outfile.write("\n".join(str(item) for itemlist))
Tüm itemlist
listesinin bellekte olması gerektiğini unutmayın, bu nedenle bellek tüketimine dikkat edin.