Bonjour,
je viens vers vous pour avoir un peu d'aide par rapport à un script de backup que je viens de réaliser.
A noter que je suis totalement nul en scriptting, mais je suis là pour apprendre et à l'écoute de votre aide.
Alors pour faire simple voici mon script :
Code :
- import zipfile
- import os.path
- import sys
- from prompt_toolkit.shortcuts import message_dialog
- from datetime import datetime
- from pathlib import Path
- from prompt_toolkit import prompt
- from prompt_toolkit.shortcuts import input_dialog
- #################################################################################################
- #
- # SAUVEGARDE LOCALE
- #
- #################################################################################################
- # Dossier à sauvegarder.
- dossier_source = 'C:\Data'
- # Dossier local qui contient les sauvegardes.
- dossier_destination = 'C:\Data1'
- dossier_source_path = Path(dossier_source)
- dossier_destination_path = Path(dossier_destination)
- message_start = "Début de la sauvegarde locale".center(50, '-')
- print(message_start)
- # Vérifie si le dossier de sauvegarde existe, ou sinon le crée.
- dossier_destination_path.mkdir(parents=True, exist_ok=True)
- # Compression ZIP.
- backup_file_name = f'Sauvegarde-{datetime.now().strftime("%d-%m-%Y-%H%M%S" )}-{dossier_source_path.name}.zip'
- zip_file = zipfile.ZipFile(str(dossier_destination_path / backup_file_name), mode='w')
- if dossier_source_path.is_file():
- # Sauvegarde d'un fichier
- zip_file.write(
- dossier_source_path.absolute(),
- arcname=dossier_source_path.name,
- compress_type=zipfile.ZIP_DEFLATED
- )
- elif dossier_source_path.is_dir():
- # Sauvegarde d'un dossier
- for file in dossier_source_path.glob('**/*'):
- if file.is_file():
- zip_file.write(
- file.absolute(),
- arcname=str(file.relative_to(dossier_source_path)),
- compress_type=zipfile.ZIP_DEFLATED
- )
- # Fin de la création du dossier compressé
- zip_file.close()
- message_end = "Fin de la sauvegarde locale".center(50,'-')
- print(message_end)
|
Comme vous pouvez le voir, celui-ci est assez simple, mais les chemins de mes dossiers source et destination sont en durs dans le script.
En fait je souhaiterai modifier tout cela afin que tout un chacun puisse l'utiliser en rentrant lui même ses informations via le module prompt_toolkit.
C'est à dire quand exécutant le script l'utilisateur doivent répondre à deux questions concernant les chemins des différents répertoires pour que le script se poursuive.
J’espère avoir été assez clair, sinon je peux éventuellement fournir d autre renseignement.
Merci pour votre aide.