fcdm_ 2021-12-15 03:12 采纳率: 100%
浏览 30
已结题

python子进程system和subprocess的区别

我发现python里面os.system()和subprocess.Popen()的一个区别:os.system调用的是cmd,subprocess.Popem调用的是powershell。
是这样吗?

  • 写回答

1条回答 默认 最新

  • 於黾 2021-12-15 03:16
    关注

    那只是表面。
    你到linux下就不存在cmd和powershell了,最终调用的都是bash
    其实它俩主要区别是,system是单线程的,会阻塞
    subprocess是多线程的,不会阻塞

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    fcdm_ 2021-12-15 03:19

    那在windows下呢?

    回复
    fcdm_ 2021-12-15 03:21

    主要是有这样一个问题,就是PowerShell的命令前面是需要加上'./'的,不然无法识别(没有添加环境变量的情况)。如果我的应用调用一些比较古老的windows程序,它自己的互相调用没有'./'然后用subprocess就运行不了了。

    回复
    於黾 回复 fcdm_ 2021-12-15 03:23

    不会。如果它后台要调用一些稀奇古怪的东西,它自己会去处理好语法转换的问题。反正就我目前的使用,没发现使用system和subprocess语法有什么不同,都一样执行。

    回复
    展开全部6条评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 12月22日
  • 已采纳回答 12月15日
  • 创建了问题 12月15日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部