Seite 1 von 1

7z und subprocess

Verfasst: Mittwoch 30. November 2022, 15:35
von Codo
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?

Re: 7z und subprocess

Verfasst: Mittwoch 30. November 2022, 15:44
von Sirius3
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"])

Re: 7z und subprocess

Verfasst: Mittwoch 30. November 2022, 17:20
von Codo
Vielen Dank für den Tip. Jetzt funktioniert es.