Python子进程python脚本

Posted

技术标签:

【中文标题】Python子进程python脚本【英文标题】:Python subprocess python script 【发布时间】:2017-10-30 19:55:35 【问题描述】:

我想创建 python 控制台,它不仅可以运行常规命令,还可以运行 python 和其他命令。例如,如何运行此脚本并为子进程提供输入?

print("Welcome to simple program !")
data = input("Enter something: ")
print(data)

【问题讨论】:

定义“常规命令”,你是说shell命令吗? 如果您愿意打开另一个窗口或子进程,则使用 os.system() 完成 shell 命令 常规命令是指ls、cd、pwd等命令,但我希望能够打开“python”命令。 (我希望能够拥有一个解释器,这样我就可以在常规终端或 cmd 中测试一些 python 模块) 不要重新发明***。试试这个xon.sh 【参考方案1】:

试试这个:

import subprocess

print("Welcome to simple program !")
cmd= input("Enter something: ")
subprocess.run(cmd, shell=True)

安全注意事项 与其他一些 popen 函数不同,此实现永远不会隐式调用 > 系统 shell。这意味着所有字符,包括 shell 元字符,都可以安全地传递给子进程。如果通过 shell=True 显式调用 shell,应用程序有责任确保正确引用所有空格和元字符以避免 shell 注入漏洞。 使用 shell=True 时,shlex.quote() 函数可用于正确转义字符串中的空格和 shell 元字符,这些字符串将用于构造 shell 命令。 reference

【讨论】:

以上是关于Python子进程python脚本的主要内容,如果未能解决你的问题,请参考以下文章

python concurrent.futures 使用子进程,运行几个python脚本

合并Python脚本的子进程'stdout和stderr,同时保持它们可区分

如何在不使用子进程的情况下从 python 自动化脚本中运行 python 'sdist' 命令?

使用子进程在 Windows 上运行 Python 脚本

Python:子进程并运行具有多个参数的 bash 脚本

使用子进程的python脚本,将所有输出重定向到文件