如何从Python中的文本文件中总结数字?比方说,我们有数字像这样的一些文本文档:Python:如何从文本文件中总结数字
320
5203
5246
而我们想蟒蛇打开该文件,总结这些数字来得到结果:10769.我应如何做到这一点?
如何从Python中的文本文件中总结数字?比方说,我们有数字像这样的一些文本文档:Python:如何从文本文件中总结数字
320
5203
5246
而我们想蟒蛇打开该文件,总结这些数字来得到结果:10769.我应如何做到这一点?
如果文件不是太大,你可以只读取文件到一个数组,使用列表理解到线转换成整数列表,然后计算的是总和:
sum([int(s.strip()) for s in open('foo.txt').readlines()])
但是,这会将整个文件读入内存。如果您的文件较大,很可能会更少的内存密集型积累在命令式方式的总和:
result = 0
for s in open('foo.txt'): result += int(s.strip())
或发电机表达式,这样的列表并不需要被存储在内存中的
sum(int(s.strip()) for s in open('foo.txt'))
有趣的是,您对内存使用的关注可以通过简化您的第一个建议来解决:'sum(int(s)for s in open('foo.txt'))''。 int将忽略尾随空间,打开的文件可以直接迭代,并且使用生成器表达式而不是列表理解将避免另一个列表。 – 2013-02-09 20:47:16
thx man you save me – 2013-02-09 20:53:35
@NedBatchelder:嗯,这很好!你应该把你的评论作为一个单独的答案,以便它可以被接受 - 这肯定比我的更好。我想这没关系,现在这个问题已经结束了。 – 2013-02-10 22:46:09
文件有多大?文件中的任何其他文字? – dawg 2013-02-09 20:39:27