linux 有没有一种方法可以在python中运行命令以获得stdin输出?

oxcyiej7  于 2023-08-03  发布在  Linux
关注(0)|答案(1)|浏览(137)

所以我找到了一种在python中读取stdin的方法,如下所示:

if not sys.stdin.isatty():
    stdin = sys.stdin.read()

字符串
但对于这样的声明

echo Hello | program.py


我只得到stdin = Hello,这就是它应该如何工作。我的问题是,有没有一种方法可以在python程序中将整个命令作为字符串获取,例如,在前面的例子中获取“echo Hello”?
在www.example.com中获取命令的任何替代方法program.py也都可以工作。谢谢您的支持:)
还没有一个好主意,所以还没有尝试任何东西。

qv7cva1a

qv7cva1a1#

不,你不能。你可以把启动一个程序想象成创建一个有两个tube的盒子,stdin和stdout(还有stderr,但是nvm)。
使用echo Hello | program.py创建2个框,一个用于echo,一个用于python,然后使用|将echo的stdout管道到python的stdin。
你可以先启动python,然后执行echo Hello,但是你需要先修改你的python脚本来等待stdin上的输入,然后将输入传递给shell子进程的stdin,读取子进程的stdout并通过它自己的stdout返回给你。

相关问题