【问题标题】:Taking multiple lines of strings as command line input in Python在 Python 中将多行字符串作为命令行输入
【发布时间】:2014-08-19 14:21:28
【问题描述】:

在编码比赛中,我得到了一个初始化文件,可以从中读取初始参数。但是,有时参数会分布在不同的行中,如下所示:

x
a 
b

(都是整数)

现在当我阅读 line1 时,我相信我会像这样存储x

x = int(sys.argv[1])

如何处理其他线路? sys.argv[2] 会在第 2 行给我下一个参数吗?

更准确地说,将使用:

par_list = sys.argv[1:].split(" ") 

给我所有行的参数列表?

【问题讨论】:

    标签: python command-line-arguments argv


    【解决方案1】:

    我假设您在 cmdline 中将输入文件名传递给 python 脚本。

    python script.py input.txt
    

    在这种情况下,sys.argv[1] = 'input.txt' 是访问输入文件的内容:

    with open(sys.argv[1], 'r') as f:
        lines = f.readlines()
    

    现在,lines 是一个列表,其中包含来自 input.txt 的所有数据行。

    【讨论】:

    • 是的,这似乎就是我想要的。谢谢!
    【解决方案2】:

    这样就可以了:

    >> python program.py $(cat input.txt)
    

    示例程序:

    import sys
    paras = [int(x) for x in sys.argv[1:]]
    print(paras)
    

    示例输入文件:

    42
    -1
    100
    

    输出:

    >> python program.py $(cat input.txt)
    [42, -1, 100]
    

    【讨论】:

    • 这只适用于unix环境,不适用于windows系统。 @arvindch 的答案应该是被接受的。
    猜你喜欢
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 2015-04-29
    相关资源
    最近更新 更多