我有一个程序,输出一些列表,我想存储以后使用。例如,假设它输出一个学生姓名列表和另一个期中成绩列表。我可以通过以下两种方式存储此输出:
标准文件输出方式:
newFile = open('trialWrite1.py','w')
newFile.write(str(firstNames))
newFile.write(str(midterm1Scores))
newFile.close()
泡菜方式:
newFile = open('trialWrite2.txt','w')
cPickle.dump(firstNames, newFile)
cPickle.dump(midterm1Scores, newFile)
newFile.close()
哪种技术更好或更可取?用一个比另一个好吗?
谢谢
pickle
更通用——它允许您将许多不同类型的对象转储到一个文件中以供以后使用。缺点是,临时存储不是很可读,也不是标准格式。另一方面,将字符串写入文件是与其他活动或代码更好的接口。但它的代价是必须再次将文本解析回Python对象。
这两个都很简单(列表?)data;我会使用
write( firstNames )
,因为不需要使用pickle。一般来说,如何将数据持久化到文件系统取决于数据!例如,
pickle
将很高兴地pickle函数,这是不能通过简单地编写字符串表示来实现的。对于完全不同的方法,请考虑Python ships with SQLite。您可以将数据存储在SQL数据库中,而无需添加任何第三方依赖项。
我认为^{} 模块可能非常适合这里,因为CSV是一种标准格式,可以由Python(和许多其他语言)读写,而且它也是人类可读的。用法可以简单到
然而,每行写一个学生,包括他们的名字和分数可能更有意义。可以这样做:
相关问题 更多 >
编程相关推荐