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
| # Fonction de vérification des fichiers exportés
def verifier_fichier_export(fichier_parametre, chemin):
print('**************************************************')
print('Lancement de la fonction de verification des fichiers')
print('**************************************************')
log.info('START Verifier Fichier Export')
# Depart du timer pour compter le temps d'execution
depart_timer = time.perf_counter()
dossier = os.listdir(chemin)
data = pd.read_excel(fichier_parametre, sheet_name='X', engine='pyxlsb')
df = pd.DataFrame(data)
bool_var = False
for i in df.index:
fichier = df['Nouveau nom'][i]
if fichier not in dossier:
print(f'Le fichier "{fichier}" n est pas présent dans le dossier "{chemin}"')
log.info('Absence du fichier : ' + fichier + ' dans le repertoire ' + chemin)
bool_var = True
else:
if '.csv' in fichier:
#try:
csv.field_size_limit(100000000)
csv.field_size_limit()
file_object = open(chemin + fichier, 'r', encoding="cp437")
lines = csv.reader(file_object, delimiter=';', quotechar='"')
flag = 0
data = []
num_ligne = 1
# Pour chaque ligne du fichier csv
for line in lines:
num_ligne = num_ligne + 1
# On vérifie si tous les champs sont vides
var = 0
for obj in line:
if ('"' in obj) and (obj.count('"') == 1) and (obj.count(';') > 3):
obj = obj.replace('"', '')
for el in obj.split(";"):
obj = el
if obj == '':
var = var + 1
# Si tous les champs sont vides alors on ne prends pas la ligne vide
if len(line) == var:
print("Suppression de la ligne vide numéro", num_ligne, 'du fichier', fichier)
flag = 1
continue
else:
data.append(line)
file_object.close()
if flag == 1: # if blank line is present in file
file_object = open(chemin + fichier, 'w')
for line in data:
file_object.write(';'.join(line) + "\n")
file_object.close()
#except Exception as e:
#print(e, fichier, num_ligne)
# On arrête la poursuite du traitement s'il manque des fichiers
if bool_var == True:
sys.exit()
log.info('END Verifier Fichier Export : un ou plusieurs fichiers sont manquants')
print('Arrêt du programme car un ou plusieurs fichiers sont manquants pour permettre de poursuivre le traitement')
else:
# Temps d'execution du programme
fin_timer = time.perf_counter()
temps_timer = (fin_timer - depart_timer)
print('Les fichiers sont tous présents dans le dossier.')
print(f'Tache terminée en {temps_timer:0.4f} secondes.')
log.info('END Verifier Fichier Export') |
Partager