有没有办法使用stdout或重定向的输出运行python代码?

时间:2018-02-22 07:23:32

标签: python cmd head

假设我有一个像这样的命令的输出:

C:\> head type_test.py
def greeting(name: str) -> str:
    return 'Hello ' + name

print(greeting("John"))
print("foo")
print("bar")

C:\> head type_test.py 6
def greeting(name: str) -> str:
    return 'Hello ' + name

print(greeting("John"))
print("foo")

我想以某种方式将代码重定向到python解释器,因此输出将是:

C:\> ???
Hello John
foo

我知道我必须将上一个命令的输出重定向到python,但是如果像这样直接提供python运行脚本吗?

2 个答案:

答案 0 :(得分:3)

只需按照以下方式操作。它对我有用。

head -5 type_test.py | python

答案 1 :(得分:0)

使用sys.stdin来管理内容。假设我写了这个程序:

文件prog.py:

#!/usr/bin/python
import sys
x=sys.stdin.read()
print('hello '+x)

然后,如果我这样做:

$>chmod u+x prog.py

然后:

$>echo john | ./prog.py

我明白了:

$>hello john