Seite 1 von 1
.bat → .py und Desktop → .zip
Verfasst: Sonntag 6. März 2022, 20:45
von timm4444
Hi Leute,
ich arbeite an einem Verwaltungs-/Kontrollprogramm
ich habe zwei Fragen:
1. Ich habe folgendes batch Script:
Code: Alles auswählen
chcp 1252 >nul
for /f "tokens=1,* delims=:" %%a in ('netsh wlan show profiles ^| findstr Profil') do call :showprofile "%%b"
goto :eof
:showprofile
set "name=%~1"
set "name=%name:~1%"
for /f "tokens=1,* delims=: " %%c in ('netsh wlan show profile name^="%name%" key^=clear ^| findstr /i "inhalt"') do echo '%name%': %%d
und weiß nicht wie ich das Output in Python als Liste bekomme.(Ich möchte den Code im Pythonscript auführen)
2.
Ich möchte den Desktop für Backup zwecke als zip archiv speichern. (Auch per python script)
Danke im vorraus und einen schönen Abend.
Re: .bat → .py und Desktop → .zip
Verfasst: Sonntag 6. März 2022, 21:20
von sparrow
Warum wilslt du das Script aufrufen und führst die befehle nicht einfach in Python aus?
Ich find es etwas seltsam, eine .bat-Script aus einer Script-Sprache heraus aufzureufen, dessen Komplexität doch eher überschaubar ist.
Ansonsten ist die Antwort: externe Prgramme startet man mit dem Subprocess-Modul.
Das mit deinem Desktop und .zip verstehe ich nicht. Für das Lesen und Schreiben von .zip-Dateien gibt es das ZipFile-Modul.
Re: .bat → .py und Desktop → .zip
Verfasst: Sonntag 6. März 2022, 21:32
von timm4444
Ja, danke für die Antwort
2.: Ich probiere es morgen nochmal aus. Ich habe die Fehlermeldungen gerade nicht parad, weil ich das Programm schon gelöscht habe.
1.: Es soll EINE exe sein und ich blicks wirklich nicht wie ich mehrere Dateien in eine exe bekomme. Deswegen will ich es direkt aus dem Python code ausführen, mit subprocess.*** oder os.system, oder ähnliches
Re: .bat → .py und Desktop → .zip
Verfasst: Donnerstag 10. März 2022, 15:04
von Codroid
@tim4444:
Python ist als Interpreter-Sprache generell nicht dafür gedacht in einer .EXE zu enden. Falls du das allerdings doch unbedingt möchtest, kann ich dir Pyinstaller ans Herz legen:
https://pyinstaller.readthedocs.io/en/stable/index.html
Dieses Tool wandelt dein Python Programm mit allen wichtigen Dateien die dazu gehören in eine 'exe' um. Schau dazu auf jeden Fall mal in die Documentation oder in ein Tutorial.
Wichtiger Hinweis: Bei der exe handelt es sich nicht um eine klassische compilierte Datei. Stattdessen wird eine virtuelle Pythonumgebung gestartet, in der das Programm ausgeführt wird. Der Unterschied ist so gut wie nicht sichtbar, weil es funktioniert. Allerdings ist es faktisch natürlich einer. Dies merkt man auch in der Ausführungszeit, die deutlich langsamer ist, als eine 'echte' .exe oder eine .py.
Dennoch ist es eine gute Alternative, gerade wenn man mal Code für Personen schreibt, die keine Ahnung von Python haben und sich schwer tun, Python und all seine Abhängigkeiten einzurichten.
Re: .bat → .py und Desktop → .zip
Verfasst: Donnerstag 10. März 2022, 15:17
von __deets__
Codroid hat geschrieben: Donnerstag 10. März 2022, 15:04
Dies merkt man auch in der Ausführungszeit, die deutlich langsamer ist, als eine 'echte' .exe oder eine .py.
Wie kommst du darauf, dass die Ausfuehrungszeit von Python-Code in dieser Form langsamer waere als sonst? Das der Python-Bytecode langsamer interpretiert wuerde, halte ich fuer falsch. Ggf. hoehere Startup-Kosten sind natuerlich eine andere Frage.
Re: .bat → .py und Desktop → .zip
Verfasst: Donnerstag 10. März 2022, 15:22
von Codroid
__deets__ hat geschrieben: Donnerstag 10. März 2022, 15:17
Wie kommst du darauf, dass die Ausfuehrungszeit von Python-Code in dieser Form langsamer waere als sonst? Das der Python-Bytecode langsamer interpretiert wuerde, halte ich fuer falsch. Ggf. hoehere Startup-Kosten sind natuerlich eine andere Frage.
Die Ausführungszeit des reinen Python-Codes natürlich nicht. Allerdings dauert, wie du erwähnt hast, der Startup der virtuellen Umgebung durchaus gerne mal ein paar Sekunden. Das kann minimiert werden, indem eine erstellte Ordnerstruktur über den PyInstaller einer einzelnen EXE vorgezogen wird, aber die ursprüngliche Maßgabe war ja eine einzelne EXE. In diesem Falls merkt man den Startup leider deutlich.
Re: .bat → .py und Desktop → .zip
Verfasst: Donnerstag 10. März 2022, 15:48
von sparrow
Es ist aber nicht irgend ein Starten einer virtuellen Umgebung, die da Zeit kostet. Die one-file-exe ist vor allem ein Archiv, das alle relevanten Daten (Script, Module, Interpreter) enthält. Und was da Zeit kostet ist das entpacken dieses Archivs in ein temporäres Verzeichnis.
Re: .bat → .py und Desktop → .zip
Verfasst: Donnerstag 10. März 2022, 15:51
von __deets__
Na das ist schon vergleichbar mit einem virtuellen environment, das ist ja der Begriff in der Pythonwelt. Ob der nun besonders geschickt gewählt ist, steht auf einem anderen Blatt.
Re: .bat → .py und Desktop → .zip
Verfasst: Donnerstag 10. März 2022, 15:56
von sparrow
Grundsätzlich richtig.
Mir ging es darum, dass sich der Beitrag so liest, als würde das Starten der virtuellen Umgebung pauschal so lange dauern. Und das ist es ja nicht. Deshalb stimmt die Ausführung, dass die Option als nicht one-file-exe schneller geht - aber auch da wird eine virtuelle Umgebung gestartet.
Da ging es mir nur um die Differenzierung, weil ja gerade sehr viele Neulinge eine .exe erstellen wollen und so vielleicht den Vorgang falsch verstehen bzw. den Begriff des Startens einer virtuellen Umgebung für "langsam" halten.