通过 Python 使用命令提示符
Working with Command Prompt through Python
我想制作一个脚本来打开命令提示符 window 并在该提示符中输入命令,而无需任何用户交互。我一直在使用 subprocess 模块,但收效甚微。我目前拥有的:
def subprocess_cmd(command):
process = Popen(command,stdout=PIPE, shell=True)
proc_stdout = process.communicate()[0].strip()
print proc_stdout
subprocess_cmd('"C:\system\cmd.exe" & C:\dir\mybat.bat & C:\dir\gdal_translate C:\dir2\mypdf.pdf C:\dir\mytif.tif')
现在 运行 顺利通过,但什么也没发生。 dir2 文件夹中应该有一个 .tif 文件,但正如我所说,什么也没有出现。当我自己 运行 通过命令提示符时,它工作正常。
我认为问题在于您没有从 subprocess
class 调用方法和常量。这对我有用 Python 3:
import subprocess
def subprocess_cmd(command,c="C:\Users\Alex"):
process = subprocess.Popen(command,stdout=subprocess.PIPE,shell=True,cwd=c)
proc_stdout = process.communicate()[0].strip()
print(proc_stdout)
>>> subprocess_cmd('"cmd.exe" && "C:\Users\Alex\test.bat"','C:\Users\Alex\')
b'Microsoft Windows [Version 6.3.9600]\r\n(c) 2013 Microsoft Corporation. All rights reserved.\r\n\r\nC:\Users\Alex>\r\nC:\Users\Alex>mkdir thisisanewdirectory'
>>> subprocess_cmd('test.bat')
b'C:\Users\Alex>mkdir thisisanewdirectory'
我想制作一个脚本来打开命令提示符 window 并在该提示符中输入命令,而无需任何用户交互。我一直在使用 subprocess 模块,但收效甚微。我目前拥有的:
def subprocess_cmd(command):
process = Popen(command,stdout=PIPE, shell=True)
proc_stdout = process.communicate()[0].strip()
print proc_stdout
subprocess_cmd('"C:\system\cmd.exe" & C:\dir\mybat.bat & C:\dir\gdal_translate C:\dir2\mypdf.pdf C:\dir\mytif.tif')
现在 运行 顺利通过,但什么也没发生。 dir2 文件夹中应该有一个 .tif 文件,但正如我所说,什么也没有出现。当我自己 运行 通过命令提示符时,它工作正常。
我认为问题在于您没有从 subprocess
class 调用方法和常量。这对我有用 Python 3:
import subprocess
def subprocess_cmd(command,c="C:\Users\Alex"):
process = subprocess.Popen(command,stdout=subprocess.PIPE,shell=True,cwd=c)
proc_stdout = process.communicate()[0].strip()
print(proc_stdout)
>>> subprocess_cmd('"cmd.exe" && "C:\Users\Alex\test.bat"','C:\Users\Alex\')
b'Microsoft Windows [Version 6.3.9600]\r\n(c) 2013 Microsoft Corporation. All rights reserved.\r\n\r\nC:\Users\Alex>\r\nC:\Users\Alex>mkdir thisisanewdirectory'
>>> subprocess_cmd('test.bat')
b'C:\Users\Alex>mkdir thisisanewdirectory'