python中的管道和参数

时间:2017-02-09 03:05:02

标签: python io pipe

我在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

但相反,它是空白的......

1 个答案:

答案 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中的内容