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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| # -*- coding: latin-1 -*
'''
Created on 22 févr. 2012
@author: BUENOO
'''
from datetime import date, timedelta
import os, fnmatch, shutil
class TransfertN3:
"""Classe pour le transfert des traces N3. Création des chemins nécessaire et transfert des traces, de j-1 à j-3"""
def __init__(self):
"Fonction d'initialisation de la classe"
self.host = 'servdata1'
self.trace = r'\section MI\TCM\Traces\N3'
self.src = r'\\{0}{1}'.format(self.host, self.trace)
def datetrace(self):
"Fonction qui récupère les dates"
delta = timedelta(days=1)
self.t = []
[self.t.append((self.t[-1] if i != 0 else date.today()) - delta) for i in range(3)]
def nameFile(self):
"Fonction qui définit les noms des fichiers à récupérer"
self.nameFile = ['*_{0}.zip'.format(x) for x in self.t]
def pathDest(self):
"Fonction qui définit les chemins de destination et les crées si besoin"
self.dest = []
self.dest = [os.path.join(self.src, *str(x).split("-")) for x in self.t]
[print('Le chemin existe déjà') if os.path.exists(x) != 0 else os.makedirs(x) for x in self.dest]
def copieTrace(self):
"Fonction qui copie les traces de la source vers la destination"
self.lfile = os.listdir(self.src)
count = 0
for file in range(len(self.lfile)):
filet = os.path.join(self.src, self.lfile[file])
if fnmatch.fnmatch(self.lfile[file], self.nameFile[0]):
try:
print('Copie en cours de ', self.lfile[file])
shutil.move(filet, self.dest[0])
count = 1
except:
print('Copie de ', self.lfile[file], ' impossible')
if fnmatch.fnmatch(self.lfile[file], self.nameFile[1]):
try:
print('Copie en cours de ', self.lfile[file])
shutil.move(filet, self.dest[1])
count = 1
except:
print('Copie de ', self.lfile[file], ' impossible')
if fnmatch.fnmatch(self.lfile[file], self.nameFile[2]):
try:
print('Copie en cours de ', self.lfile[file])
shutil.move(filet, self.dest[2])
count = 1
except:
print('Copie de ', self.lfile[file], ' impossible')
if count == 0:
print("Aucune trace n'est présente")
def showpath(self):
"Fonction d'aide pour le devellopement, pour l'utiliser indiquer x.showpath()"
print('Host :', self.host, 'Trace :', self.trace, 'Source :', self.src)
print('Date j-1 :', self.t[0], 'Date j-2 :', self.t[1], 'Date j-3 :', self.t[2])
print('NameFile1 :', self.nameFile[0], 'NameFile2 :', self.nameFile[1], 'NameFile3 :', self.nameFile[2])
print('Dest1 :', self.dest[0], 'Dest2 :', self.dest[1], 'Dest3 :', self.dest[2])
x = TransfertN3()
x.datetrace()
x.nameFile()
x.pathDest()
x.copieTrace()
#x.showpath()
y = input('Le transfert des traces N3 est terminé, appuyez sur une touche pour quitter.') |
Partager