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 :

Lancer script sur fichiers d'un sous dossier python


Sujet :

Python

  1. #1
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Par défaut Lancer script sur fichiers d'un sous dossier python
    Bonjour,


    je souhaite lancer un script sur plusieurs fichiers d'un sous dossier:

    Je m’explique: j'ai un dossier résultats qui contient 4 autre dossiers à l'intérieur desquel se trouvent des fichiers islands.csv que je souhaite traiter. Ces fichiers possèdent un nom d'attribution à la place de l'étoile (par exemple toto_islands.csv) et sont présents dans les 4 dossiers mais contiennent des résultats différents que je souhaite regrouper dans un seul fichier total. Je souhaiterais aussi extraire ces noms pour savoir quel fichiers je traite.

    Voila ce que j'ai fais :

    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
    # dir
    islander_dir = "/home/***/Bureau/GI-1/Results/Islander_results"
    dimob_dir = "/home/***/Bureau/GI-1/Results/Dimob_results"
    gihunter_dir = "/home/***/Bureau/GI-1/Results/GIHunter_results/GI_result_G/"
    sigihmm_dir = "/home/***/Bureau/GI-1/Results/SigiHMM_results"
    all_gi_dir = "/home/***/Bureau/GI-1/Results/DISG_results/GI_result_DISG"
     
    #files
    islander = glob.glob(os.path.join(islander_dir, '*_islands*'))
    dimob = glob.glob(os.path.join(dimob_dir, '*_islands*'))
    gihunter = glob.glob(os.path.join(gihunter_dir, '*_islands*'))
    sigihmm = glob.glob(os.path.join(sigihmm_dir, '*_islands*'))
    all_gi = glob.glob(os.path.join(all_gi_dir, '*_islands*'))
     
    #sort
    islander.sort()
    dimob.sort()
    gihunter.sort()
    sigihmm.sort()
    all_gi.sort()
     
    f = open(total, "a")
     
    with open(islander, "r") as f1:
     
    --- suite du script ---
    et voilà l'erreur que j'obtiens:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Traceback (most recent call last):
      File "scratch_2.py", line 24, in <module>
        with open(islander, "r") as f1:
    TypeError: expected str, bytes or os.PathLike object, not list
    Le script fonctionne parfaitement pour un seul fichier et je ne vois pas trop comment y remédier. ..

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 705
    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 705
    Par défaut
    Salut,

    open ne sait ouvrir qu'un fichier à la fois et islander est une liste de... noms de fichiers.

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

  3. #3
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Par défaut
    OK je comprends mieux ^^'
    Comment procéder alors ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 705
    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 705
    Par défaut
    Salut,

    Citation Envoyé par LaraFarron Voir le message
    Comment procéder alors ?
    Ça dépend de ce que vous voulez faire.

    Si c'est pour faire une suite d'opérations sur un des éléments de la liste, il faut le sortir de la liste. Si c'est sur tous les éléments, on peut faire une boucle.

    Sûr que si vous ne connaissez pas listes et boucles, c'est compliqué mais il y a des tutos pour apprendre ces bases.

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

  5. #5
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Par défaut
    C'est pour réaliser une suite d'évenements (à l'aide d'un script) sur tout les fichiers de la liste ^^

    J'avais vu qu'on pouvait utiliser le os.path ... mais après je coince...

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 705
    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 705
    Par défaut
    Salut,

    Regrouper des données de fichiers CSV en un seul fichier peut être fait avec n'importe quel tableur.

    Après pour "automatiser" l'opération, il faut déjà qu'elle ait quelque chance d'être répétée... mais pour programmer même pour le fun, il faut avoir pris le temps d'apprendre.

    Vous êtes déjà perdue pour penser à/écrire des itérations sur une liste de... fabriquer votre fichier avec un tableur sera plus rapide que d'apprendre à programmer.
    Si vous voulez "apprendre", trouver un tuto. et prenez le temps.

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

Discussions similaires

  1. [XL-2007] Nbre de fichiers et de sous dossiers d'un répertoire
    Par doncamelo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/06/2011, 23h27
  2. Réponses: 9
    Dernier message: 13/05/2011, 06h53
  3. Créer un fichier dans un sous-dossier
    Par Biotik dans le forum C++
    Réponses: 2
    Dernier message: 15/07/2010, 10h10
  4. Copier un fichier dans chaque sous-dossier grace a command !
    Par k3vin dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 26/12/2009, 17h15
  5. lancer script sur plusieurs fichiers
    Par ricololo dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 11/03/2009, 23h02

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