【问题标题】:Python - open new shell and run commandPython - 打开新外壳并运行命令
【发布时间】:2012-10-03 04:46:31
【问题描述】:

目前我正在使用以下方法从 Python 中运行 bash 命令:

os.system(cmd)

但是我需要在新的 shell/终端中运行该命令。有谁知道怎么做?

谢谢, 丹

【问题讨论】:

  • “新终端”是指您希望窗口管理器创建一个新的终端窗口来运行命令吗?

标签: python shell terminal command


【解决方案1】:

Windows“WshShell”,谷歌,就是答案。我的完整步骤:

安装

1. pip install pywin32-221-cp36-cp36m-win_amd64.whl
2. python.exe pywin32_postinstall.py -install  (DOS command line)

运行

3. import win32com.client
4. WshShell = win32com.client.Dispatch("WScript.Shell")
5. WshShell.run("cmd") 

WshShell.run() 是你需要的,有很多不同的运行方式。隐藏窗口、新窗口、全屏、最小化等。

【讨论】:

    【解决方案2】:

    我正在使用以下方法(这也会将 stderr 重定向到 stdout):

    import subprocess    
    cmd_line = "echo Hello!"
    p = subprocess.Popen(cmd_line, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    out = p.communicate()[0]
    print out
    

    【讨论】:

      【解决方案3】:

      os.system() 已弃用,取而代之的是:

      import subprocess
      print subprocess.check_output("command", shell=True)
      

      【讨论】:

      • 这实际上是创建一个新的独立进程还是只是一个子shell? bcs 子shell 可能与文件手有冲突。即使用 os.system() 很糟糕,因为那是一个子shell
      猜你喜欢
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多