我有一个程序可以输出一些列表,我想存储这些列表以供日后使用。例如,假设它输出一个学生姓名列表和另一个他们的期中成绩列表。我可以通过以下两种方式存储此输出:
标准文件输出方式:
newFile = open('trialWrite1.py','w')
newFile.write(str(firstNames))
newFile.write(str(midterm1Scores))
newFile.close()
pickle 方式:
newFile = open('trialWrite2.txt','w')
cPickle.dump(firstNames, newFile)
cPickle.dump(midterm1Scores, newFile)
newFile.close()
哪种技术更好或更受欢迎?使用一个比另一个有优势吗?
谢谢
最佳答案
我认为 csv
module 可能很适合这里,因为 CSV 是一种标准格式,可以由 Python(和许多其他语言)读取和写入,而且它也是人类可读的。用法可以像
with open('trialWrite1.py','wb') as fileobj:
newFile = csv.writer(fileobj)
newFile.writerow(firstNames)
newFile.writerow(midterm1Scores)
但是,每行写一个学生可能更有意义,包括他们的姓名和分数。可以这样做:
from itertools import izip
with open('trialWrite1.py','wb') as fileobj:
newFile = csv.writer(fileobj)
for row in izip(firstNames, midterm1Scores):
newFile.writerow(row)
关于python - Pickle vs 输出到 python 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3588023/