我想运行一个可执行程序,它位于下面我的脚本路径中。该路径包含空格和一个程序参数需要双引号。
这似乎是此处已经提到的其他问题的综合(Handling directories with spaces Python subprocess.call(),Passing double quote shell commands in python to subprocess.Popen()?)但是没有一个问题为我的问题提供了正确的解决方案。
这是我的代码:
import subprocess
subdir = 'ogr\\'
command = subdir + 'ogr2ogr.exe -f "ESRI Shapefile" output0.shp input0.kml'
output,error = subprocess.Popen(
command, universal_newlines=True, shell=True,
stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
我尝试运行的可执行文件(ogr2ogr.exe)驻留在o中 在我的脚本下面的“ogr”子目录中,该子目录又位于包含空格的目录中(例如,C:\ My Documents \ My Apps \ Scripts \ myscript.py)。其中一个参数需要双引号。如果我将脚本和输入文件(input0.kml)放在可执行文件的同一子目录中,上面的命令会处理参数中的双引号,但如果失败并显示消息“系统找不到指定的文件”,则我尝试在脚本本身的同一目录中运行它。
任何提示?
提前致谢!