【问题标题】:Program to open command prompt打开命令提示符的程序
【发布时间】:2019-12-15 14:50:42
【问题描述】:

我正在尝试编写一个 python 脚本,该脚本将打开命令提示符并将目录更改为 git 初始化文件夹并返回 git 状态。现在,我需要有关如何仅显示当前目录的帮助,以便我可以自己尝试解决该解决方案。

import subprocess

p = subprocess.Popen(['cmd.exe','dir'])

我希望这会显示我当前的目录,但它只是返回我在打开命令提示符时通常看到的内容。执行此操作并传递多个命令的正确方法是什么?

【问题讨论】:

  • 您是否尝试在命令行中运行"cmd.exe dir" 以查看它是如何工作的?您还可以检查"cmd.exe --help" - 可能它应该显示您可以使用"cmd.exe" 的选项
  • “FileNotFoundError: [WinError 2] The system cannot find the file specified”是我尝试时收到的错误。

标签: python command-line subprocess


【解决方案1】:

您可以使用shell=True,而不是在 Popen 中显式使用 cmd.exe,它的作用基本相同(考虑到您可能希望在不同的操作系统上执行脚本会更好)。

如果你想得到你执行命令的结果,你可以用stdoutstderr参数将输出重定向到subprocess.PIPE,然后可以用p.stdout.readlines()抓取。

所以你需要的解决方案是

import subprocess

p = subprocess.Popen('dir', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for line in p.stdout.readlines():
    print(line)

【讨论】:

    猜你喜欢
    • 2017-03-05
    • 2013-04-05
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 2018-06-06
    相关资源
    最近更新 更多