1

我正在尝试编写一个脚本来创建对 WFS 服务的多个 ogr2ogr 调用(在循环中)。出于某种原因,我不能使用 osgeo 库(它是一台工作计算机,访问权限有限..),所以我想我会试试 Subprocess 库。

到目前为止,我的过程是:

  • 打开 OSGeo4W 外壳
  • 将字符串从脚本传输到 shell 命令行
  • 循环多个 ogr2ogr 调用

代码:

import subprocess
p = subprocess.Popen(r'C:\Program Files\QGIS 2.18\OSGeo4W.bat',
                  stdout=subprocess.PIPE, stdin=subprocess.PIPE)

call = 'ogr2ogr -f "CSV" "folder_on_pc" WFS:"dbname" -sql "SELECT * from 
specific_layer where attribute>=20180311 ORDER BY attribute"'

subprocess.check_call(call, shell=True)
output = p.communicate(call)[0]

我知道 ogr2ogr 调用有效,但似乎无法让命令行“输入”。如果这是一个完全错误的方法,请告诉我。我感谢所有的帮助。

4

0 回答 0