python中的管道和参数

python中的管道和参数,python,io,pipe,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” t

我是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
#!/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
跑步时

$ more test.txt | python test.py
$ more test.txt | python test.py 200
它会打印出来的

asdfsdf 200

sldkfjs 100

kljslkd 300
我的目标是打印出带有作为参数传递的数字的行

我的尝试:

number = int(sys.argv[1])
test.py

#!/usr/bin/python
import sys
line = ""
for n in [line for line in sys.stdin.readlines()]:
    print n
#!/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
$ more test.txt | python test.py 200
我想回报的是:

asdfsdf 200

但是它是空白的…

我无法复制您的问题

这是我的档案:

#!/usr/bin/env python

import sys

number = int(sys.argv[1])
print number
使用
more input.txt | python program.py 200从命令行运行,输出为200


您可以尝试打印str(sys.argv)
以准确调查sys.argv中的内容

我无法复制您的问题

这是我的档案:

#!/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中的内容

对我来说是正确的。我不确定这里有什么问题。@Scott Carpenter很抱歉,我用了一个更好的例子更新了这个问题,看起来很适合我。我不确定这里有什么问题。@Scott Carpenter很抱歉,我用了一个更好的例子更新了问题抱歉,我创建了一个测试情境并在我的问题中进行了更新。抱歉,我创建了一个测试情境并在我的问题中进行了更新。