1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
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) |
Partager