终端和子流程运行()显示命令的不同行为(osmfilter)

2024-05-15 06:02:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我看到osmfilter(https://wiki.openstreetmap.org/wiki/Osmfilter)有一个特殊的行为,它可以通过以下命令安装:

$ sudo apt-get install osmctools

假设我导出了地图.osm对于来自https://www.openstreetmap.org的区域,我只想从该文件中筛选高速公路。我可以使用的命令是:

$ osmfilter map.osm --keep='highway' > highways_terminal.osm

文件高速公路_终端.osm包含有关高速公路的信息。然后我尝试使用Python对子流程运行():

import subprocess

cmd = ["osmfilter", "map.osm", "--keep='highway'"]
resp = subprocess.run(cmd, capture_output=True, text=True)

with open("highways_subprocess.osm", "w") as fp:
    fp.write(resp.stdout)

但是,高速公路_子流程.osm除了“边界”之外不包含任何信息。你知道吗

我处理报价的方式不对吗?你知道吗


Tags: 文件httpsorg命令信息maposmwiki

热门问题