1 pièce(s) jointe(s)
Récupération de données dans fichier excel
Bonjour à tous,
Je dispose d'un script créant des répertoires en fonctions des noms de fichiers (là n'est pas le problème) mais je souhaite renommé les répertoires pour qu'ils aient le nom du client. Pour l'instant le nom du répertoire est l'ID du client et pas son nom... Ce que je cherche à faire c'est donc ouvrir le fichier excel qui contient les ID des clients ainsi que leurs noms et de remplacer le nom du répertoire par le nom du client.
Mon fichier excel ce présente sous cette forme:
La colonne SN BMS est donc l'ID du client et je voudrait le remplacer par son nom.
Pièce jointe 275560
Je sais pas si c'est clair, n'hésitez pas à me demander des infos supplémentaires.
Merci d'avance
1 pièce(s) jointe(s)
Récupération de données spécifiques sur fichier excel
Bonjour à tous,
Je dispose du script suivant :
Code:
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
| #!/usr/bin/python
# -*- coding:Utf-8 -*-
import os
import time
d = 'www/boite_noire'
date = time.strftime('%Y_%m_%d_%H_%M_%S')
filesAll = os.listdir(d)
filesValid1= [i for i in filesAll if i[-4:]=='.txt']
for f in filesValid1:
newName = f[:-4]+'_'+date+'.txt'
try:
os.mkdir('{0}/{1}'.format(d, f[:-4]))
except:
os.system('mv {0}/{1} {0}/{2}/{3}'.format(d, f, f[:-4], newName))
filesValid2= [i for i in filesAll if i[-4:]=='.bin']
for f in filesValid2:
newName = f[:-4]+'_'+date+'.bin'
try:
os.mkdir('{0}/{1}'.format(d, f[:-4]))
except:
os.system('mv {0}/{1} {0}/{2}/{3}'.format(d, f, f[:-4], newName)) |
Il me permet de créer des répertoires à partir des fichiers .txt et .bin que mon serveur reçoit et les ranges dans leurs répertoires respectifs.
Je voudrais maintenant renommer ces répertoires (qui ont le nom de l'ID du client pour le moment) par le numéro de châssis de la machine du client.
Pour cela je dispose d'un fichier excel avec plusieurs données dont les ID et numéros de châssis. Ce que je cherche c'est une commande du genre ctrl+f en python permettant de repérer l'ID du client et ensuite je me déplace de 8 colonnes vers la gauche pour récupérer le numéro de châssis.
Je sais qu'il y a la blibliothèque xlrd permettant d'ouvrir le fichier excel, selectionner la feuille, ect... mais je ne trouve pas de commande permettant de chercher une chaine (de numéro ici) dans le fichier excel.
Si quelqu'un a une idée de comment faire, je suis preneur.
Je vous met une petite photo du fichier excel:
Pièce jointe 277237
La colonne SN BMS est donc l'ID du client et frame n° est le numéro de châssis.
Modifier nom de répertoire grâce à un fichier excel
Boujour à tous,
J'ai écrit le script suivant :
Code:
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
| #!/usr/bin/python
# -*- coding:Utf-8 -*-
import os
import time
d = 'www/boite_noire'
date = time.strftime('%Y_%m_%d_%H_%M_%S')
filesAll = os.listdir(d)
filesValid1= [i for i in filesAll if i[-4:]=='.txt']
for f in filesValid1:
newName = 'Mesure'+'_'+date+'.txt'
try:
os.mkdir('{0}/{1}'.format(d, f[:-4]))
except:
os.system('mv {0}/{1} {0}/{2}/{3}'.format(d, f, f[:-4], newName))
filesValid2= [i for i in filesAll if i[-4:]=='.bin']
for f in filesValid2:
newName = 'Compteur'+'_'+date+'.txt'
try:
os.mkdir('{0}/{1}'.format(d, f[:-4]))
except:
os.system('mv {0}/{1} {0}/{2}/{3}'.format(d, f, f[:-4], newName)) |
Il me permet de faire ceci:
J'ai ça au départ:
Helloworld/
test1.txt
test1.bin
J'obtient:
Helloworld/
test1/
....test1_24_05_2017_16_51_31.txt
....test1_24_05_2017_16_51_31.bin
Je voudrait maintenant renommé mes noms de répertoires que je crée (actuellement de l'ID du client) par le numéro de chassis du client.
Pour cela j'ai un fichier excel (excel.xls) avec en 4iem colonne les numéros de chassis et en 13iem colonne les ID clients.
Mon idée est de faire un script comme ça:
Code:
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
| #!/usr/bin/python
# -*- coding:Utf-8 -*-
import os
import time
import xlrd
d = 'www/boite_noire'
myBook=xlrd.open_workbook('excel.xls')
mySheet=myBook.Sheet_by_index(1)
date = time.strftime('%Y_%m_%d_%H_%M_%S')
filesAll = os.listdir(d)
filesValid1= [i for i in filesAll if i[-4:]=='.txt']
for f in filesValid1:
newName = f[:-4]+'_'+date+'.txt'
try:
os.mkdir('{0}/{1}'.format(d, f[:-4]))
except:
os.system('mv {0}/{1} {0}/{2}/{3}'.format(d, f, f[:-4], newName))
filesValid2= [i for i in filesAll if i[-4:]=='.bin']
for f in filesValid2:
newName = f[:-4]+'_'+date+'.bin'
try:
os.mkdir('{0}/{1}'.format(d, f[:-4]))
except:
os.system('mv {0}/{1} {0}/{2}/{3}'.format(d, f, f[:-4], newName))
for(i=12,i<317,i++)
if(mySheet.cell(i,12)=f[:-4])
chassis=mySheet.cell(i,4)
os.rename(d+'/'+f[:-4],d+'/'+chassis) |
Avec évidemment les if et les for écrit en python et non en C++ mais l'idée est la.
Merci d'avance pour vos réponses !