In dem Wissen, dass Python ein Zipfile-Modul hat, (Während Sie die kostenlose Software für die Zip-Dekomprimierung und die Standard-Zip-Dekomprimierungsfunktion von Windows kennen) Ich entschied mich für ein einfaches Dekomprimierungswerkzeug mit den folgenden Spezifikationen.
--Drop die Zip-Datei in den DOS-Batch und entpacken Sie es
[Beliebiger Ordner] \ [Beliebiger Name] .zip
[Beliebiger Ordner] \ [Beliebiger Name]
Dann habe ich es mit der Absicht von C # Application.exit ()
aufgerufen
Ich war ein paar Minuten lang süchtig nach "sys.exit ()", also notieren Sie es sich.
Vorerst zeige ich Ihnen zuerst das ausgefüllte Formular. Es wird davon ausgegangen, dass Python installiert ist und Path übergeben wird. Der Dateiname jedes Skripts ist festgelegt, aber alles ist in Ordnung, solange es mit der Beschreibung im DOS-Stapel übereinstimmt.
extract.bat
@echo off
cd /d "%~dp0"
::"Extrahieren" in derselben Hierarchie wie dieser Stapel.Prämisse, dass es "py" gibt
python extract.py -i "%~1"
if errorlevel 1 (
echo.Dekomprimierung fehlgeschlagen.
echo.ExitCode:%errorlevel%
pause
)
extract.py
from argparse import ArgumentParser
import os
import sys
import zipfile
def main():
parser = ArgumentParser()
parser.add_argument("-i", "--input", default=False, help="Input Zip")
args = parser.parse_args()
filePath = args.input
if (not filePath):
sys.exit(1)
if (not os.path.isfile(filePath)):
sys.exit(2)
folderName = os.path.splitext(os.path.basename(filePath))[0]
outputPath = os.path.join(os.path.dirname(filePath), folderName)
try:
with zipfile.ZipFile(filePath) as zip:
zip.extractall(outputPath)
except:
sys.exit(3)
else:
sys.exit(0)
if (__name__ == "__main__"):
main()
Um die Wahrheit zu sagen, ich war weiterhin süchtig danach, ohne Folgendes zu wissen.
Es ist schneller, sich den Code anzusehen, um zu sehen, wie Sie süchtig wurden.
Selbst zum Zeitpunkt der normalen Kündigung lautet der Kündigungscode jetzt 3. .. ..
try:
with zipfile.ZipFile(filePath) as zip:
zip.extractall(outputPath)
sys.exit(0)
except:
sys.exit(3)
Selbst zum Zeitpunkt einer abnormalen Beendigung wurde der Beendigungscode 0. .. ..
try:
with zipfile.ZipFile(filePath) as zip:
zip.extractall(outputPath)
except:
sys.exit(3)
finally:
sys.exit(0)
Dank meiner Sucht verstehe ich, wie Python-Try-außer-else-endlich funktioniert.