Aufruf externes Programm

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Codo
User
Beiträge: 8
Registriert: Montag 25. Oktober 2021, 19:25

Hallo,

ich bin Neuling in dieser Programmiersprache. Für ein Linux-System möchte ich ein Pythoncode erstellen. Dabei möchte ich ein externes Programm aufrufen. Ich habe dazu einen komplexen Aufruf, den ich in Python ausführen möchte. Das Kommando habe ich unter Ubuntu getestet und bringt das gewünschte Ergebnis.

Kommando: wget -nv 'http://download.osmand.net/rawindexes/' -O - | grep -oE 'file=Austria_burgenland_europe_2.obf.zip' | cut -c6- | xargs -I{} wget 'http://download.osmand.net/download.php ... =yes&file={}' -O {}

Dieses habe ich versucht wie folgt umzusetzen:

Code: Alles auswählen

#! /usr/bin/env python
import os

test="wget -nv 'http://download.osmand.net/rawindexes/' -O - | grep -oE 'file=Austria_burgenland_europe_2.obf.zip' | cut -c6- | xargs -I{} wget 'http://download.osmand.net/download.php?standard=yes&file={}' -O {}"
os.system(test)
Beim Ausführen wird kein Fehler gemeldet. Das Ergebnis wird aber auch nicht erreicht. Ebenfalls scheiterten auch Versuche mit subprocess.call, subprocess.run usw.

Wer kann mir weiterhelfen? Für Spezies sicher eine Kleinigkeit.

Gruß Codo
Sirius3
User
Beiträge: 18276
Registriert: Sonntag 21. Oktober 2012, 17:20

Wenn Du solch ein Kommand ausführen möchtest, dann ist ein Shell-Skript das richtige und nicht ein Python-Programm.

Willst Du das mit Python lösen, wird aus dem wget ein Aufruf von requests.get, das grep wird durch einen richtigen HTML-Parser ersetzt und der xargs-Aufruf ist eine einfache Schleife.
Benutzeravatar
__blackjack__
User
Beiträge: 14069
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Nicht mal eine Schleife weil es da nur eine Datei gibt, auf die das zutrifft. Und die URL die da zusammengebaut wird, steht auch schon so im Quelltext der Webseite.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Codo
User
Beiträge: 8
Registriert: Montag 25. Oktober 2021, 19:25

Hallo,

danke für das Mitdenken. Auf einem Synology-NAS kann ich keine Shell-Skripte ausführen. Zumindest ist mir das noch nicht gelungen.

Dank Google habe ich jetzt doch eine Lösung gefunden mit requests.

MfG
Antworten