好吧,你可以看到我的问题我是一个Python的总newb。我建立一个python脚本,基本上我想它来执行这条线
在Python中启动一些东西
/Library/Frameworks/GDAL.framework/Programs/ogr2ogr -f "GeoJSON" output.json input.shp
如何让Python来执行此,如果我在我的终端打字吗?
感谢
好吧,你可以看到我的问题我是一个Python的总newb。我建立一个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'])
我不能发表评论,但想添加到上面的回答:
的子包允许用于确定命令是否成功执行的返回句柄。这可能在以后的脚本中很重要:
import subprocess
COMMAND = '/Library/Frameworks/GDAL.framework/Programs/ogr2ogr -f "GeoJSON" output.json input.shp'
return_code = subprocess.call(COMMAND, shell=True)
为什么这个问题没有投票?堆栈溢出标准不够好吗? – climboid 2013-02-18 20:32:39
我没有downvote,但我的猜测是,这是因为它是以前的堆栈溢出问题,如[这一个]的副本(http://stackoverflow.com/questions/450285/executing-command-line-programs-from- python),这可以很容易地找到(例如)谷歌搜索“启动命令行Python” – 2013-02-18 20:52:46
嘿,感谢大卫 – climboid 2013-02-18 21:02:03