好的,你可以看到我的问题,我是 python 的新手。我正在构建一个 python 脚本,基本上我希望它执行这一行
/Library/Frameworks/GDAL.framework/Programs/ogr2ogr -f "GeoJSON" output.json input.shp
如何让 python 像在终端中输入一样执行它?
谢谢
好的,你可以看到我的问题,我是 python 的新手。我正在构建一个 python 脚本,基本上我希望它执行这一行
/Library/Frameworks/GDAL.framework/Programs/ogr2ogr -f "GeoJSON" output.json input.shp
如何让 python 像在终端中输入一样执行它?
谢谢
import os
os.system('/Library/Frameworks/GDAL.framework/Programs/ogr2ogr -f "GeoJSON" output.json input.shp')
最近,建议使用subprocess包:
subprocess.call(['/Library/Frameworks/GDAL.framework/Programs/ogr2ogr', '-f',
'"GeoJSON"', 'output.json', 'input.shp'])
我无法发表评论,但想补充一下上述答案:
subprocess 包允许返回句柄,您可以通过该句柄确定命令是否成功执行。这在您的脚本后面可能很重要:
import subprocess
COMMAND = '/Library/Frameworks/GDAL.framework/Programs/ogr2ogr -f "GeoJSON" output.json input.shp'
return_code = subprocess.call(COMMAND, shell=True)