运行GDAL时是否可以禁用cmd窗口?类似于“静音模式”。
我用 :
os.system('gdal_translate -of GTiff %s %s'%(in1, out1))
运行GDAL时是否可以禁用cmd窗口?类似于“静音模式”。
我用 :
os.system('gdal_translate -of GTiff %s %s'%(in1, out1))
您可以使用subprocess.Popen类。
Popen
使用instead of 的一个优点call
是它很容易获得命令输出(call
您需要传入一个类似文件的对象来获取 stdout/stderr,因此如果您需要在字符串变量中获取它们,则需要使用StringIO )。
这是一个例子:
def runcmd(cmd):
''' Run a command
cmd = list of arguments or command string
Returns Returns (exit_code,stdout,stderr)
'''
import subprocess
proc = subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
stdout,stderr=proc.communicate()
exit_code=proc.wait()
return exit_code,stdout,stderr
exit_code,stdout,stderr=runcmd('gdal_translate -of GTiff %s %s'%(in1, out1))
# can also use a list, e.g.
# exit_code,stdout,stderr=runcmd(['gdal_translate', '-of', 'GTiff', in1, out1])
if exit_code: print 'Error ocurred:',stderr
else: print 'Success!',stdout
如果不需要 stdout/stderr 文本,可以使用 subprocess.call:
exit_code=subprocess.call(['gdal_translate', '-of', 'GTiff', in1, out1])
您可以通过切换到subprocess
.eg 模块subprocess.call
并使用shell = True
参数来解决此问题。我是从 StackOverflow 得到的,更具体地说是从这篇文章中得到的。