在命令行上执行时应该有python3 a4.py apple
我试图对其编号求和的文件看起来完全像这样
4 14
5
这是我目前收集到的信息
import sys
print(sys.argv[1])
fp = open(sys.argv[1])
fileContents = fp.read()
fp.close()
numbers = fileContents
print(numbers)
def map(f,items):
result = []
for i in range(0,len(items),1):
result = result + [f(items[i])]
return result
a=map(eval,numbers)
def sum(num):
total = 0
for i in range(0,len(num),1):
total = total + i
return total
print(sum(a))
最佳答案
(我对“递归”标签有点困惑)
这个怎么样?
import sys
with open(sys.argv[1]) as inf:
total = 0
for line in inf:
total += sum(int(i) for i in line.split())
print(total)
注释:
- 这假设每一行仅包含数值(在本例中为整数)
- 如果您的数字包含浮点值,请使用
float()
而不是int()
- 使用
with
会在您完成或遇到异常时自动为您关闭文件。 - 这会逐行处理文件,因此它不会受到大文件内存问题的限制(如果有可能的话)
更新:
您可以使用下面 J.F.Sebastian 提供的有用评论进一步缩短它:
with open(sys.argv[1]) as inf:
print(sum(int(number) for line in inf for number in line.split()))
关于python - 从命令行查找数字文件的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11712854/