在 Python 中将多行字符串作为命令行输入
Posted
技术标签:
【中文标题】在 Python 中将多行字符串作为命令行输入【英文标题】:Taking multiple lines of strings as command line input in 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(" ")
给我所有行的参数列表?
【问题讨论】:
【参考方案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 的答案应该是被接受的。以上是关于在 Python 中将多行字符串作为命令行输入的主要内容,如果未能解决你的问题,请参考以下文章