python - 从命令行查找数字文件的总和

标签 python recursion python-3.x

在命令行上执行时应该有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/

相关文章:

python - 查找作为列表列表输入的 N x N 矩阵的行列式 - "list index out of range"

python - 使用python逐行检查大量关键字

python - 嵌套树 DataFrame reshape

C : 0 & 1 combinations using recursion

recursion - 在 Laravel 中使用 Baum 显示分层树/在 Laravel 中使用递归函数

python - 将 x 行子进程标准输出写入文件

python - 如何替换 "key": value pairs in string with key: value (remove quotes from key)?

python - Azure 应用服务 : Stopping site MYSITE because it failed during startup

python split函数读取两个正斜杠之间的字符串

C中使用递归计算数组的累加和