7z und subprocess

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 möchte auf einer Synology mittels Python eine Datei entpacken lassen. Wenn ich das Kommando auf der Shell ausführe, funktioniert es tadellos. Ich knabbere an der Umsetzung in Python. Wo ist mein Fehler?

Code: Alles auswählen

arg="x -oOI_P73_EU_202225_Offline_Update  OI_P73_EU_202225_Offline_Update.zip"
subprocess.call(["7z", arg])
Ergebnis:
7-Zip [32] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.utf8,Utf16=on,HugeFiles=on,32 bits,2 CPUs LE)
Command Line Error:
Unsupported command:
x -oOI_P73_EU_202225_Offline_Update OI_P73_EU_202225_Offline_Update.zip

Shellaufruf: 7z x -oOI_P73_EU_202225_Offline_Update OI_P73_EU_202225_Offline_Update.zip
Das funktioniert.

Kann mir geholfen werden?
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

Jedes Argument muß ein Listelement sein. Statt call benutzt man `run`:

Code: Alles auswählen

subprocess.run(["7z", "x", "-oOI_P73_EU_202225_Offline_Update", "OI_P73_EU_202225_Offline_Update.zip"])
Codo
User
Beiträge: 8
Registriert: Montag 25. Oktober 2021, 19:25

Vielen Dank für den Tip. Jetzt funktioniert es.
Antworten