Script Backup

Script Backup - Python - Programmation

Marsh Posté le 10-06-2021 à 17:34:23    

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 :
  1. import zipfile
  2. import os.path
  3. import sys
  4. from prompt_toolkit.shortcuts import message_dialog
  5. from datetime import datetime
  6. from pathlib import Path
  7. from prompt_toolkit import prompt
  8. from prompt_toolkit.shortcuts import input_dialog
  9. #################################################################################################
  10. #
  11. #                              SAUVEGARDE LOCALE 
  12. #
  13. #################################################################################################
  14. # Dossier à sauvegarder.
  15. dossier_source = 'C:\Data'
  16. # Dossier local qui contient les sauvegardes.
  17. dossier_destination = 'C:\Data1'
  18. dossier_source_path = Path(dossier_source)
  19. dossier_destination_path = Path(dossier_destination)
  20. message_start = "Début de la sauvegarde locale".center(50, '-')
  21. print(message_start)
  22. # Vérifie si le dossier de sauvegarde existe, ou sinon le crée.
  23. dossier_destination_path.mkdir(parents=True, exist_ok=True)
  24. # Compression ZIP.
  25. backup_file_name = f'Sauvegarde-{datetime.now().strftime("%d-%m-%Y-%H%M%S" )}-{dossier_source_path.name}.zip'
  26. zip_file = zipfile.ZipFile(str(dossier_destination_path / backup_file_name), mode='w')
  27. if dossier_source_path.is_file():
  28.     # Sauvegarde d'un fichier
  29.     zip_file.write(
  30.         dossier_source_path.absolute(),
  31.         arcname=dossier_source_path.name,
  32.         compress_type=zipfile.ZIP_DEFLATED
  33.     )
  34. elif dossier_source_path.is_dir():
  35.     # Sauvegarde d'un dossier
  36.     for file in dossier_source_path.glob('**/*'):
  37.         if file.is_file():
  38.             zip_file.write(
  39.                 file.absolute(),
  40.                 arcname=str(file.relative_to(dossier_source_path)),
  41.                 compress_type=zipfile.ZIP_DEFLATED
  42.             )
  43. # Fin de la création du dossier compressé
  44. zip_file.close()
  45. message_end   = "Fin de la sauvegarde locale".center(50,'-')
  46. 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.

Reply

Marsh Posté le 10-06-2021 à 17:34:23   

Reply

Marsh Posté le 11-06-2021 à 18:16:42    

Un simple input() ne suffit pas ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed