在编码竞赛中,我提供了一个初始化文件,可以从中读取初始参数。但是,有时参数分布在不同的行上,如下所示:
x
a
b
(所有这些整数)
现在当我读到line1时,我相信我会像这样存储x
:
x = int(sys.argv[1])
我如何照顾其他线路? sys.argv[2]
会给我第2行的下一个参数吗?
更确切地说,将使用:
par_list = sys.argv[1:].split(" ")
给我一个所有行的参数列表?
答案 0 :(得分:2)
我假设您将输入文件名传递给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
所有数据行的列表。
答案 1 :(得分: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]