терминал и subprocess.run () показывают различное поведение для команды (osmfilter) - PullRequest
0 голосов
/ 25 января 2019

Я вижу странное поведение с osmfilter (https://wiki.openstreetmap.org/wiki/Osmfilter), который можно установить с помощью следующей команды:

$ sudo apt-get install osmctools

Предположим, я экспортировал map.osm длярегион из https://www.openstreetmap.org, и я хочу отфильтровать только шоссе из этого файла. Я могу использовать команду:

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

Файл highways_terminal.osm содержит информацию оЗатем я попытался использовать Python, чтобы сделать то же самое с subprocess.run ():

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)

Но highways_subprocess.osm не содержит никакой другой информации, кроме "границ".

Я неправильно обрабатываю кавычки?

...