[Python] Quand j'ai essayé de créer un outil de décompression avec un fichier zip que je connaissais juste, j'étais accro à sys.exit ()

introduction

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.

Puis je l'ai appelé avec l'intention de C # ʻApplication.exit () J'étais accro àsys.exit ()` pendant quelques minutes, alors notez-le.

Formulaire rempli

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()

J'étais accro à

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.

Ce à quoi j'étais accro: Partie 1

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)

Ce à quoi j'étais accro: partie 2

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)

À la fin

Grâce à ma dépendance, je comprends comment fonctionne Python try-except-else-finally.

Recommended Posts

[Python] Quand j'ai essayé de créer un outil de décompression avec un fichier zip que je connaissais juste, j'étais accro à sys.exit ()
[5e] J'ai essayé de créer un certain outil de type Authenticator avec python
[2nd] J'ai essayé de créer un certain outil de type Authenticator avec python
[3ème] J'ai essayé de créer un certain outil de type Authenticator avec python
[4th] J'ai essayé de créer un certain outil de type Authenticator avec python
[1er] J'ai essayé de créer un certain outil de type Authenticator avec python
Une note à laquelle j'étais accro lors de l'exécution de Python avec Visual Studio Code
Une histoire à laquelle j'étais accro après la communication SFTP avec python
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
Une note à laquelle j'étais accro lors de la création d'une table avec SQL Alchemy
J'ai essayé de créer une application de notification de publication à 2 canaux avec Python
J'ai essayé de créer une application todo en utilisant une bouteille avec python
Quand j'ai essayé de gratter en utilisant des requêtes en python, j'étais accro à SSLError, donc un mémo de contournement
J'étais accro à la création d'un environnement Python venv avec VS Code
J'ai essayé de faire un signal avec Raspeye 4 (édition Python)
J'étais accro à essayer Cython avec PyCharm, alors prenez note
Je veux faire un jeu avec Python
Je veux écrire dans un fichier avec Python
J'ai essayé de faire un processus périodique avec CentOS7, Selenium, Python et Chrome
J'ai fait une application d'envoi de courrier simple avec tkinter de Python
Quand j'ai essayé de créer un VPC avec AWS CDK mais que je n'ai pas pu le faire
[Analyse des brevets] J'ai essayé de créer une carte des brevets avec Python sans dépenser d'argent
Quand j'ai essayé de créer un environnement virtuel avec Python, cela n'a pas fonctionné
Trois choses auxquelles j'étais accro lors de l'utilisation de Python et MySQL avec Docker
Faisons un outil de veille de commande avec python
J'ai essayé de toucher un fichier CSV avec Python
J'étais accro au grattage avec Selenium (+ Python) en 2020
Ce à quoi j'étais accro lors de l'utilisation de Python tornado
J'ai essayé de faire une simulation de séparation de source sonore en temps réel avec l'apprentissage automatique Python
J'ai essayé de créer diverses "données factices" avec Python faker
Ce à quoi j'étais accro lorsque l'utilisateur de traitement est passé à Python
J'ai fait un chronomètre en utilisant tkinter avec python
J'ai essayé de créer une interface graphique à trois yeux côte à côte avec Python et Tkinter
[1 hour challenge] J'ai essayé de créer un site de bonne aventure qui soit trop adapté à Python
Quand j'ai essayé d'installer PIL et matplotlib dans un environnement virtualenv, j'en étais accro.
J'ai essayé de charger / télécharger des fichiers sur AWS S3 / Azure BlobStorage / GCP CloudStorage avec Python
Ce à quoi j'étais accro en traitant d'énormes fichiers dans un environnement Linux 32 bits
J'ai essayé de créer un générateur qui génère une classe conteneur C # à partir de CSV avec Python
J'ai essayé de transformer un fichier Python en un EXE (erreur de récursivité prise en charge)
Rubyist a essayé de créer une API simple avec Python + bouteille + MySQL
Un mémorandum lors de l'acquisition automatique avec du sélénium
J'ai essayé de créer une expression régulière de "montant" en utilisant Python
Ce à quoi j'étais accro en présentant ALE à Vim pour Python
[Python] J'ai essayé d'implémenter un tri stable, alors notez
J'ai essayé de créer une expression régulière de "temps" en utilisant Python
Ce à quoi j'étais accro avec json.dumps dans l'encodage base64 de Python
[Python] Un mémo que j'ai essayé de démarrer avec asyncio
Une note à laquelle j'étais accro lors de l'émission d'un bip sous Linux
J'ai essayé de créer une liste de nombres premiers avec python
J'ai essayé de créer une expression régulière de "date" en utilisant Python
[Introduction] Je veux créer un robot Mastodon avec Python! 【Débutants】
[Python] Japonais simple ⇒ J'ai essayé de créer un outil de traduction en anglais
J'ai essayé de faire une étrange citation pour Jojo avec LSTM
J'ai essayé de créer une fonction de similitude d'image avec Python + OpenCV
J'ai essayé de créer un mécanisme de contrôle exclusif avec Go
On m'a dit que je ne pouvais pas trouver XML_SetHashSalt lorsque j'ai essayé d'utiliser pip avec python.