2013-02-09 58 views
0

如何从Python中的文本文件中总结数字?比方说,我们有数字像这样的一些文本文档:Python:如何从文本文件中总结数字

320 
5203 
5246 

而我们想蟒蛇打开该文件,总结这些数字来得到结果:10769.我应如何做到这一点?

+0

文件有多大?文件中的任何其他文字? – dawg 2013-02-09 20:39:27

回答

2

如果文件不是太大,你可以只读取文件到一个数组,使用列表理解到线转换成整数列表,然后计算的是总和:

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')) 
+5

有趣的是,您对内存使用的关注可以通过简化您的第一个建议来解决:'sum(int(s)for s in open('foo.txt'))''。 int将忽略尾随空间,打开的文件可以直接迭代,并且使用生成器表达式而不是列表理解将避免另一个列表。 – 2013-02-09 20:47:16

+0

thx man you save me – 2013-02-09 20:53:35

+0

@NedBatchelder:嗯,这很好!你应该把你的评论作为一个单独的答案,以便它可以被接受 - 这肯定比我的更好。我想这没关系,现在这个问题已经结束了。 – 2013-02-10 22:46:09