我在python中使用管道和I / O是新手,而且我一直在使用文件中的sys.stdin.readlines()
。
你如何读一个额外的论点? 例如:
more input.txt | python program.py 200
我想存储' 200'在我的程序中作为变量(int)使用。
我的尝试:
number = int(sys.argv[1])
出于测试目的,我只输入了
print number
但我没有得到' 200'
更好的解释:
我有两个文件,' test.txt'和' test.py'
test.py
#!/usr/bin/python
import sys
line = ""
for n in [line for line in sys.stdin.readlines()]:
print n
运行时
$ more test.txt | python test.py
它会打印出来
asdfsdf 200
sldkfjs 100
kljslkd 300
我的目标是打印出我传递的数字作为参数的行
我的尝试:
test.py
#!/usr/bin/python
import sys
number = int(sys.argv[1])
line = ""
for n in [line for line in sys.stdin.readlines()]:
if n.split()[1] == number:
print n
n.split()[1]应该是文件中每一行的数字是否正确? 运行时
$ more test.txt | python test.py 200
我想要回归的是:
asdfsdf 200
但相反,它是空白的......
答案 0 :(得分:0)
我无法复制你的问题。
这是我的档案:
#!/usr/bin/env python
import sys
number = int(sys.argv[1])
print number
从命令行运行more input.txt | python program.py 200
,输出为200.
您可以尝试print str(sys.argv)
来准确调查sys.argv中的内容