如何将值从python脚本发送到控制台并退出

如何将值从python脚本发送到控制台并退出,python,Python,我的python脚本生成用户需要在同一控制台中运行的正确命令。我的场景是,用户正在运行一个脚本,然后看到必须运行的命令。有没有办法退出python脚本并将该命令发送到控制台,以便用户不需要复制/粘贴 解决方案是让您的python脚本(我们称之为script.py)只需打印命令:print('ls-l'),并在这样的终端中使用它:$(python3 script.py)。这使得bash以命令的形式运行脚本的输出,并且基本上在终端中运行ls-l 您甚至可以更进一步,在~/.bashrc中创建一个别名

我的python脚本生成用户需要在同一控制台中运行的正确命令。我的场景是,用户正在运行一个脚本,然后看到必须运行的命令。有没有办法退出python脚本并将该命令发送到控制台,以便用户不需要复制/粘贴

解决方案是让您的python脚本(我们称之为
script.py
)只需打印命令:
print('ls-l')
,并在这样的终端中使用它:
$(python3 script.py)
。这使得bash以命令的形式运行脚本的输出,并且基本上在终端中运行
ls-l

您甚至可以更进一步,在
~/.bashrc
中创建一个别名,这样您就不再需要调用整行代码了。您可以在文件末尾编写类似于
alias printls=$(python3/path/to/script.py)
的内容。启动新终端后,可以键入
printls
,脚本将运行

此方法的一个缺点是,您没有适当的方法来处理代码中的异常或错误,因为它打印的所有内容都将作为命令运行。一种方法(虽然很难看)是
print('echo“出错!”)
,这样运行命令的用户就可以看到出现了故障


但是,我建议采用“传统”的方式,直接从python运行命令。这里有一个链接指向如何实现这一点:。

Python可以在新的子shell中运行系统命令。正确的方法是通过模块完成,但是对于简单的任务,只需使用
os.system
就更容易了。Python脚本示例(假设是类Unix系统):


为什么不直接使用
subprocess
来执行命令,而用户不必按Enter?Python 2或Python 3?你用的是什么版本?更具体地说,是哪个次要版本?答案可能取决于您使用的操作系统和/或命令行。在Linux中,您可以通过管道将脚本的输出传输到shell解释器:
pythonscript.py | sh
import os
os.system('ls')