首页 > 解决方案 > 在跨操作系统平台的python中使用子进程

问题描述

我正在开发一个软件,其中包含一个使用子进程运行 bash 命令的 python 脚本。将来我可以使用 Windows 运行这个特定的脚本吗?

我基本上使用三种语言:Bash、C 和 Python。

我使用 bash 命令在 python 中运行所有脚本。

cat run.sh

gcc [programName].c -o programName
./programName

或者可能只是这样做: subprocess.call(["gcc",programName])

标签: pythonbashsubprocesscross-platform

解决方案


我最近一直在研究这个。如果您想拥有在 Unix 和 Windows 上都可以使用的代码,我建议您尽可能使用 eg os.removeoros.rename代替rmor mvglob.glob而不是ls,并且仅用于subprocess运行外部命令(请记住,它们.exe大部分时间都有扩展名-- 您可以检查os.name以决定是否包含它)。您可能还想将所有greps、awks 或seds 重写为 Python 函数。

关键是,即使从技术上讲,您可以在 Windows 上安装 Bash 并从控制台运行 Python 代码,但在我看来,代码subprocess总是在 CMD 或 PowerShell 中运行。


推荐阅读