Sachant que Python a un module zipfile, (Tout en connaissant le logiciel gratuit de décompression zip et la fonction de décompression zip standard de Windows) J'ai décidé de créer un outil de décompression simple avec les spécifications suivantes.
[Dossier arbitraire] \ [Nom arbitraire] .zip
[Dossier arbitraire] \ [Nom arbitraire]
Puis je l'ai appelé avec l'intention de C # ʻApplication.exit () J'étais accro à
sys.exit ()` pendant quelques minutes, alors notez-le.
Pour le moment, je vais d'abord vous montrer le formulaire rempli. On suppose que Python est installé et que Path est passé. Le nom de fichier de chaque script est fixe, mais tout va bien tant qu'il est cohérent avec la description du lot DOS.
extract.bat
@echo off
cd /d "%~dp0"
::"Extraire" dans la même hiérarchie que ce lot.Prémisse qu'il y a "py"
python extract.py -i "%~1"
if errorlevel 1 (
echo.La décompression a échoué.
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()
Pour vous dire la vérité, j'ai continué à y être accro sans savoir ce qui suit.
Il est plus rapide de regarder le code pour voir comment vous êtes devenu accro.
Même au moment de la terminaison normale, le code de terminaison est maintenant 3. .. ..
try:
with zipfile.ZipFile(filePath) as zip:
zip.extractall(outputPath)
sys.exit(0)
except:
sys.exit(3)
Même au moment d'une terminaison anormale, le code de terminaison est devenu 0. .. ..
try:
with zipfile.ZipFile(filePath) as zip:
zip.extractall(outputPath)
except:
sys.exit(3)
finally:
sys.exit(0)
Grâce à ma dépendance, je comprends comment fonctionne Python try-except-else-finally.
Recommended Posts