在python中启动某些东西

launching something within python

好吧,所以你可以看到我的问题,我对python是个新手。我正在构建一个python脚本,基本上我希望它执行这一行

1
2
3
<wyn>
/Library/Frameworks/GDAL.framework/Programs/ogr2ogr -f"GeoJSON" output.json input.shp
</wyn>

如何让python像在终端中输入一样执行这个命令?谢谢


1
2
import os
os.system('/Library/Frameworks/GDAL.framework/Programs/ogr2ogr -f"GeoJSON" output.json input.shp')

最近,建议使用子流程包:

1
2
subprocess.call(['/Library/Frameworks/GDAL.framework/Programs/ogr2ogr', '-f',
                 '"GeoJSON"', 'output.json', 'input.shp'])


我无法评论,但希望在上述答案中添加:子进程包允许返回句柄,通过该句柄可以确定命令是否成功执行。这在您的脚本后面可能很重要:

1
2
3
import subprocess  
COMMAND = '/Library/Frameworks/GDAL.framework/Programs/ogr2ogr -f"GeoJSON" output.json input.shp'  
return_code = subprocess.call(COMMAND, shell=True)