【发布时间】:2019-05-25 02:28:44
【问题描述】:
我需要从 python 脚本启动外部程序,它可以在命令提示符下运行。我一直在搜索 python 文档和堆栈溢出,但找不到任何对我有帮助的东西。我使用以下脚本成功启动了 cmd:
但我仍然需要写下更多这样的命令:
- mkdir 数据
- 复制data.txt c:\data
我认为使用 subprocess 模块这是一项非常容易的工作,但我找不到方法。我该怎么做?
【问题讨论】:
-
这不就是
subprocess.run("mkdir data && copy data.txt C:\data", shell=True)吗? -
@AdamSmith,似乎没有在 c:\ 使用 'subprocess.run("mkdir data && copy data.txt C:\data", shell=True)' 创建一个数据文件夹。我有什么问题吗?
-
做这个工作没问题,但是为什么要用CMD来做目录,复制文件呢?使用Python很简单
os.mkdir('data');shutil.copy('data.txt', 'data')。 -
@eryksun,你是对的。通过“os.mkdir”或“shutil.copy”创建目录是一种简单的方法,但我有几个类似的工作。所以如果我能做这些工作,我也能做其他工作。因此,我需要知道“子进程”是如何操作命令提示符的。
-
shell=True使用'cmd.exe /c "{}"'.format(args)。这将执行单个命令行,其中可以包含由&&、||、&和|(管道)连接的多个命令。 CMD 等待命令行完成并使用评估的退出代码退出。您可以使用start来避免等待命令或使用start /b这样做而不创建新的控制台,并在必要时使用<和>重定向标准输入和标准输出(例如到NUL)。确保用于命令行的字符串文字是原始反斜杠或转义反斜杠。
标签: python windows subprocess command-prompt