从命令行中指定的文件中读取数字并打印数字的总和

时间:2014-06-19 12:13:50

标签: python python-3.x

编写一个程序,从文件中输入一个数字列表并打印它们的总和。文件名作为命令行参数出现。假设文件" orange"包含数字:

6 26 10 8 

您的程序应该表现如下:

 python3 a4.py orange
 50

我目前的代码:

from scanner import *
def main():
    s = Scanner("orange")
    print(sum(float(x) for x in sys.argv[1:]))
    s.close()
main()

为了我的代码,我需要实现一个正确的扫描仪?但是,当我使用扫描程序运行更新的代码时,它会返回cannot convert string to float: orange。对不起,如果这是一个愚蠢的问题,但我参加了我的第一个编程课程,并且我试图获得成功。

1 个答案:

答案 0 :(得分:0)

您不需要扫描仪,您只需从sys.argv获取文件名并读取如下文件:

import sys
with open(sys.argv[1], 'r') as f:
    print(sum(float(x) for x in f.read().split()))

示例文件的输出:

 >> python3 a4.py orange
 50.0

如果您确保文件中只有整数,则可以使用int(x)