IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Récupération de données dans fichier excel


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 47
    Points : 8
    Points
    8
    Par défaut 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.

    Nom : Capture.PNG
Affichages : 2125
Taille : 14,0 Ko

    Je sais pas si c'est clair, n'hésitez pas à me demander des infos supplémentaires.
    Merci d'avance

  2. #2
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut
    Salut,

    Il faudrait déjà que tu publie ton code actuel ou alors un code que t'aurai testé et qui ne fonctionnerait pas.

    Pour faire communiquer Python et Excel il y a openpyxl. Etudie la documentation et si t'as des incompréhensions reviens poser tes questions.

    La documentation ici : https://openpyxl.readthedocs.io/en/default/

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 47
    Points : 8
    Points
    8
    Par défaut
    Voici mon script, je voudrait le modifier pour que les noms de répertoires prennent les noms des clients

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/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)
    filesValid= [i for i in filesAll if i[-4:]=='.txt']
     
    for f in filesValid:
     
        newName = f[:-4]+'_'+date+'.txt'
        try:
            os.mkdir('{0}/{1}'.format(d, f[:-4]))
        except:
            print 'Directory {0}/{1} already exists'.format(d, f[:-4])
        os.system('mv {0}/{1} {0}/{2}/{3}'.format(d, f, f[:-4], newName))

  4. #4
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par Scott06 Voir le message
    Voici mon script, je voudrait le modifier pour que les noms de répertoires prennent les noms des clients

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/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)
    filesValid= [i for i in filesAll if i[-4:]=='.txt']
     
    for f in filesValid:
     
        newName = f[:-4]+'_'+date+'.txt'
        try:
            os.mkdir('{0}/{1}'.format(d, f[:-4]))
        except:
            print 'Directory {0}/{1} already exists'.format(d, f[:-4])
        os.system('mv {0}/{1} {0}/{2}/{3}'.format(d, f, f[:-4], newName))

    J'imagine que les noms de tes clients se trouvent dans tes fichiers txt ?

    Si c'est le cas il faudrait parcourir tes fichiers txt, et donc savoir lire un fichier txt et non pas un fichier Excel.

    Tu peux regarder la doc sur comment lire un fichier ici

    Sans savoir comment est écris ton fichier txt je ne peux t'aider plus que ça.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 47
    Points : 8
    Points
    8
    Par défaut
    Non, comme je l'ai dit dans mon premier post, les noms de mes clients se situent dans mon fichier excel (d'où la photo). Je veux juste remplacer le nom des répertoires (actuellement l'ID client) par le nom de ce même client. Les fichiers textes ne sont pas à modifier.

  6. #6
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par Scott06 Voir le message
    Non, comme je l'ai dit dans mon premier post, les noms de mes clients se situent dans mon fichier excel (d'où la photo). Je veux juste remplacer le nom des répertoires (actuellement l'ID client) par le nom de ce même client. Les fichiers textes ne sont pas à modifier.
    Ok très bien mais si tu codes pas quelque chose qui fait appel à la librairie openpyxl ça donne l'impression que tu attends qu'on code pour toi.

    Je t'ai donné le lien de la doc, si tu l'as lu tu devrais être capable de sortir quelque chose.

    • Lire dans le fichier Excel
    • récupérer l'information qui t'intéresse
    • mettre cette information en objet
    • nommer le nom de mon répertoire par cet objet


    C'est pas très compliqué à faire mais faut mettre les mains dans le cambouis

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 47
    Points : 8
    Points
    8
    Par défaut Récupération de données spécifiques sur fichier excel
    Bonjour à tous,
    Je dispose du script suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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:
    Nom : Capture.PNG
Affichages : 2084
Taille : 8,2 Ko

    La colonne SN BMS est donc l'ID du client et frame n° est le numéro de châssis.

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 235
    Points : 36 684
    Points
    36 684
    Par défaut
    Citation Envoyé par Scott06 Voir le message
    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.
    Et si vous montriez comment vous essayez de vous en dépatouiller?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 47
    Points : 8
    Points
    8
    Par défaut
    Comment je peux m'en dépatouiller si je ne connais pas la commande permettant de chercher une chaine dans le fichier excel ????? ............

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #!/usr/bin/python
    # -*- coding:Utf-8 -*-
    import os
    import time
    import xlrd 
    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))
     
    myBook = xlrd.open_workbook('excel.xls')

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 235
    Points : 36 684
    Points
    36 684
    Par défaut
    Citation Envoyé par Scott06 Voir le message
    Comment je peux m'en dépatouiller si je ne connais pas la commande permettant de chercher une chaine dans le fichier excel ????? ............
    Il faut commencer par lire la documentation.
    Si elle est insuffisante, chercher des tutos.
    Si ce n'est pas encore assez, regarder les scripts de tests.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 47
    Points : 8
    Points
    8
    Par défaut
    J'ai déjà regarder tout ça sinon je n'aurai pas poser la question Je cherche juste une indication du genre est ce qu-il existe une commande qui permet de faire ça ou alors est ce que en récupérant le fichier excel sous forme de liste et avec une boucle for rechercher le mot que je veux ? Ou en passant par autre chose.

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 235
    Points : 36 684
    Points
    36 684
    Par défaut
    Citation Envoyé par Scott06 Voir le message
    J'ai déjà regarder tout ça sinon je n'aurai pas poser la question Je cherche juste une indication du genre est ce qu-il existe une commande qui permet de faire ça ou alors est ce que en récupérant le fichier excel sous forme de liste et avec une boucle for rechercher le mot que je veux ? Ou en passant par autre chose.
    Vous devriez alors facilement pouvoir extraire vos 2 colonnes et en faire un dictionnaire donnant le n° de chassis en fonction de l'ID du client. Cela fait... vous auriez un code qui fonctionne (et coder une boucle qui remplit un dictionnaire, c'est quand même pas la mer à boire...) à poster et peut être le souhait d'optimiser cela grâce à une fonction magique que vous n'auriez pas vue.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 47
    Points : 8
    Points
    8
    Par défaut Modifier nom de répertoire grâce à un fichier excel
    Boujour à tous,

    J'ai écrit le script suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 235
    Points : 36 684
    Points
    36 684
    Par défaut
    Citation Envoyé par Scott06 Voir le message
    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 !
    C'est bien vous progressez.
    Mais quelle est la question?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 47
    Points : 8
    Points
    8
    Par défaut
    Je ne sais pas comment m'y prendre pour écrire le if (actuellement en C++) en python pour garder les mêmes propriétés.

  16. #16
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par Scott06 Voir le message
    Je ne sais pas comment m'y prendre pour écrire le if (actuellement en C++) en python pour garder les mêmes propriétés.
    Salut,

    Un if reste un if c'est juste la manière dont il est écrit qui diffère.

    De quel if en C++ parlez vous ?

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 47
    Points : 8
    Points
    8
    Par défaut
    Mon problème c'est ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for(i=12,i<317,i++)
    	if(mySheet.cell(i,12)=f[:-4])
    à traduire en python

  18. #18
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par Scott06 Voir le message
    Mon problème c'est ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for(i=12,i<317,i++)
    	if(mySheet.cell(i,12)=f[:-4])
    à traduire en python
    Je me disais bien je ne connaissais pas cette écriture.

    La première ligne est une boucle for pour i commençant à 12 et cette boucle continue tant que i est strictement inférieur à 317. Je ne connais pas le C++ donc n'hésitez pas à me corriger.

    Ensuite mySheet.cell(i,12) permet de sélectionner pour chaque itération la 12ème colonne de la ième ligne. Si cette 12ème colonne de la ième ligne est égale à f[:-4] (surement une troncature de chaines de caractères) alors la condition est validée.

    En python ça donnerai quelque chose du genre (à tester)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    i = 12
     
    while i < 317 :
     
        if (mySheet.cell(i,12)=f[:-4]):
     
            chassis=mySheet.cell(i,4)
            os.rename(d+'/'+f[:-4],d+'/'+chassis)
     
        i+=1
    Concernant la boucle for je me suis rendu compte qu'elle n'était pas utile étant donné que while est également une boucle.

  19. #19
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 47
    Points : 8
    Points
    8
    Par défaut
    Oui c'est exactement ça pour le if. Pour la boucle for tu as raison la while la remplace. En revanche j'ai tester avec ton bout de code mais j'ai une erreur sur le i=12 :

    Nom : Capture.PNG
Affichages : 2097
Taille : 4,8 Ko

    Tu sais pourquoi il y a cette erreur ?
    Je met le code au cas ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #!/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))
     
    	i = 12
    	while i < 317 :
        if (mySheet.cell(i,12)=f[:-4]):
    		print("Trouver!")
            chassis=mySheet.cell(i,4)
            os.rename(d+'/'+f[:-4],d+'/'+chassis)
        i=i+1

  20. #20
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 47
    Points : 8
    Points
    8
    Par défaut
    J'ai viré le i=12 de la boucle (je l'ai mis au début) sauf que maintenant j'ai la même erreur sur la boucle while :/

Discussions similaires

  1. [AC-2007] exportation donnée dans fichier excel
    Par popofpopof dans le forum VBA Access
    Réponses: 11
    Dernier message: 14/06/2011, 22h04
  2. Récupération de données entre fichiers Excel
    Par SlySylvain dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/01/2009, 14h35
  3. Réponses: 5
    Dernier message: 27/05/2008, 19h43
  4. Recup données dans fichier Excel
    Par Titototi dans le forum VBA Access
    Réponses: 3
    Dernier message: 18/04/2008, 17h02
  5. Entré de données dans fichier excel avec Form VB6
    Par avyrex dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 17/05/2007, 15h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo