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 :

Exécuter des commandes sur un ensemble de fichiers d'un répertoire


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    etudiant
    Inscrit en
    Avril 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 56
    Par défaut Exécuter des commandes sur un ensemble de fichiers d'un répertoire
    Bonjour,

    je souhaites réliser une suite de commande sur un ensemble de fichier qui se trouvent dans un répertoire.
    Mes commandes marchent bien car on lui précise un fichier mais impossible de lui faire comprendre que je
    souhaite réaliser ces étapes sur un ensemble de fichier présents dans un répertoire.

    Voilà ce que je propose :

    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 requests
     
     
     
    for element in os.listdir('/dossier/ou/se/trouve/fichiers'):
      if element.endswith('.txt'):
        #file = open("rsID.txt", "r")
        file = os.open("%element.txt", "r")
        for rs in file:
          r = requests.post(
                          url='https://biit.cs.ut.ee/gprofiler/api/snpense/snpense/',
                          json={
                          'organism':'hsapiens',
                          'query': rs
                          }
                          )
          if not r.json()['result'] :
            print (rs,"NA")
          else :
            print (rs,r.json()['result'])
        file.close()
    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Tu réalises que tu ouvres toujours le même fichier ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        file = os.open("%element.txt", "r")
    et tu as vraiment un fichier nommé %element.txt ?

  3. #3
    Membre averti
    Femme Profil pro
    etudiant
    Inscrit en
    Avril 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 56
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Tu réalises que tu ouvres toujours le même fichier ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        file = os.open("%element.txt", "r")
    et tu as vraiment un fichier nommé %element.txt ?
    Bonjour,

    non, je n'ai aucun fichier nommé %element.txt mais je pensais qu'en faisant cela, il comprendrais que je souhaitai traiter tous les fichiers (que j'ai surnommé element) préset dans un même dossier (faire comme une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i in *.txt print $i
    en bash).

    je pensais que en python correspondait à en bash.

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Je me disais aussi.

    Utilise la solution de Tyrtamos et ça ira tout seul.

  5. #5
    Membre averti
    Femme Profil pro
    etudiant
    Inscrit en
    Avril 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 56
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Je me disais aussi.

    Utilise la solution de Tyrtamos et ça ira tout seul.
    Mais je ne comprend pas comment ouvrir chaque fichier en lecture (open) ? avec un file = open(fichier, "r") ?

  6. #6
    Membre averti
    Femme Profil pro
    etudiant
    Inscrit en
    Avril 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 56
    Par défaut
    Je vous remercie énormément de votre aide VinsS et surtout tyrtamos pour votre aide et vos réponses.

    Le script à l'air de marché grâce à ce que vous avez proposé !

    Merci !

  7. #7
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Pour trouver et traiter tous les fichiers type "*.txt" d'un répertoire, je te suggère d'utiliser plutôt la fonction iglob du module glob.

    Essaie ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    from glob import iglob
    repertoire = r"/dossier/ou/se/trouvent/les/fichiers"
    motif = "*.txt"
    for fichier in iglob(os.path.join(repertoire, motif)):
        if os.path.isfile(fichier):    
            print(fichier)
    L'un des problèmes de ton code est que os.listdir renvoie les noms trouvés sans leur chemin.

  8. #8
    Membre averti
    Femme Profil pro
    etudiant
    Inscrit en
    Avril 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 56
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Bonjour,

    Pour trouver et traiter tous les fichiers type "*.txt" d'un répertoire, je te suggère d'utiliser plutôt la fonction iglob du module glob.

    Essaie ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    from glob import iglob
    repertoire = r"/dossier/ou/se/trouvent/les/fichiers"
    motif = "*.txt"
    for fichier in iglob(os.path.join(repertoire, motif)):
        if os.path.isfile(fichier):    
            print(fichier)
    L'un des problèmes de ton code est que os.listdir renvoie les noms trouvés sans leur chemin.
    Mais à ce moment là, comment lui dire d'ouvrir le fichier en lecture ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Exécuter des commandes sur plusieurs serveurs en même temps
    Par Med_be dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 27/03/2015, 19h05
  2. Répéter une commande sur un ensemble de fichiers
    Par sohoney dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 11/01/2013, 10h55
  3. [Batch] Exécuter une commande sur un ensemble de fichiers
    Par flo44 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 23/04/2010, 16h07
  4. Réponses: 11
    Dernier message: 30/06/2008, 13h15

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