python - 在跨操作系统平台的python中使用子进程
问题描述
我正在开发一个软件,其中包含一个使用子进程运行 bash 命令的 python 脚本。将来我可以使用 Windows 运行这个特定的脚本吗?
我基本上使用三种语言:Bash、C 和 Python。
我使用 bash 命令在 python 中运行所有脚本。
cat run.sh
gcc [programName].c -o programName
./programName
或者可能只是这样做:
subprocess.call(["gcc",programName])
解决方案
我最近一直在研究这个。如果您想拥有在 Unix 和 Windows 上都可以使用的代码,我建议您尽可能使用 eg os.remove
oros.rename
代替rm
or mv
,glob.glob
而不是ls
,并且仅用于subprocess
运行外部命令(请记住,它们.exe
大部分时间都有扩展名-- 您可以检查os.name
以决定是否包含它)。您可能还想将所有grep
s、awk
s 或sed
s 重写为 Python 函数。
关键是,即使从技术上讲,您可以在 Windows 上安装 Bash 并从控制台运行 Python 代码,但在我看来,代码subprocess
总是在 CMD 或 PowerShell 中运行。
推荐阅读
- php - Foreach 循环遍历当前月份数组项的结果
- r - 在ggplotly中嵌入谷歌字体 png下载
- rpa - 数据抓取:如何从多个页面读取所有表格内容(使用下一页)?
- sql - 使用 Vault 进行 Postgres 数据库迁移
- r - 将一条线拟合到热图
- java - 如何在 Java 代码中使用 Scala 注释
- wix - WiX - VS 架构和 Visual Studio 2019
- caching - 如何更改 Flutter 中图像缓存的缓存时长(包:flutter_cached_network_image & flutter_cache_manager)
- ruby - Ruby:“创建和增加”的成语
- javascript - Sharepoint 2010 中与 ListData.svc 一起使用的列表名称的规则