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

Réseau/Web Python Discussion :

Script python pour tri de fichiers


Sujet :

Réseau/Web Python

Vue hybride

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 47
    Par défaut Script python pour tri de fichiers
    Bonjour à tous,

    Je suis débutant dans l'écriture de script et surtout en python et mon maître de stage veut que je lui en écrive un ! Génial !

    Je dispose d'un serveur dédié nous servant à stocker des fichiers qui vont être envoyés par des machines.
    Les fichiers seront de la forme XXXXX.txt et XXXXX.bin avec XXXXX l'id de la machine qui a envoyé les fichiers.
    Je cherche à réaliser un script permettant de récupérer l'id de la machine, de créer un dossier du nom de l'id de la machine et d'y transférer les fichiers .txt et .bin. Si le dossier existe déjà il suffit juste de transférer les fichiers dans le dossier correspondant pas besoin de recréer le dossier évidemment !

    Je pense que c'est assez simple à réaliser mais je suis vraiment débutant en python donc si qqun peut m'aider !

    Bonne journée à tous !

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur backend (python)
    Inscrit en
    Mai 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur backend (python)

    Informations forums :
    Inscription : Mai 2014
    Messages : 77
    Par défaut
    Tu as déjà fait quelque chose que tu pourrais nous montrer voir vraiment ou tu coinces, car là j'ai plus l'impression que tu demandes un script tout fait.

    Si tu n'as rien fait oriente toi vers la librairie 'os' (https://docs.python.org/2/library/os.html) et son sous-module 'os.path' (https://docs.python.org/2/library/os.path.html), c'est ce qui sert à gérer les fichiers avec python. Pour le reste c'est du traitement basique si tu sais programmer un minimum tu devrais pouvoir te débrouiller.

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 47
    Par défaut
    En faite je ne comprend pas comment adapter os.path à mon problème, j'ai également essayer:
    import re
    m = re.search('[^.]*','xxxx.txt')

    sauf que mon problème est que j'ai plusieurs fichiers de noms differents qui vont arrivés donc je ne peut pas saisir à la main le paramètre xxxx .... J'avais penser à faire cette fonction mais dans une boucle qui balaye tous les fichiers de mon répertoire et c'est la où je bloque :/

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur backend (python)
    Inscrit en
    Mai 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur backend (python)

    Informations forums :
    Inscription : Mai 2014
    Messages : 77
    Par défaut
    Alors, pour ce qui est de parcourir un dossier et ses sous-dossiers, tu peux utiliser 'os.walk()', cette fonction permet une lecture récursive d'un dossier et te renvoie trois objet (https://docs.python.org/2/library/os.html#os.walk)

    Pour ce qui est de récupérer l'ID, il te suffira d'enlever l'extension au troisième argument renvoyer par 'os.walk()', pas besoin d'une regex pour ça, il te suffit d'utiliser 'os.path.splitext()' qui va te renvoyer deux objets, le premier sera ton id et le second sera l'extension. (https://docs.python.org/2/library/os....path.splitext)

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 47
    Par défaut
    C'est exactement ce que je regarder merci ^^
    Mais ce que je ne comprend pas c'est comment récuperer le 1ier fichier que os.walk a parcourue, le deuxieme ect..
    Par exemple j'ai un fichier boite_noire et dedans un fichier1.txt, fichier1.bin, fichier2.txt, fichier2.bin

    En utilisant os.walk() comment je fait pour récuperer le nom du premier fichier pour qu'ensuite je fasse os.splitext(.txt) et os.splitext(.bin) ?

    C'est cette partie que j'arrive pas à comprendre :/

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur backend (python)
    Inscrit en
    Mai 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur backend (python)

    Informations forums :
    Inscription : Mai 2014
    Messages : 77
    Par défaut
    Tu passes le chemin du dossier que tu veux parcourir à os.walk(), je suis parti du postulat que tous tes fichiers seront dans un répertoire commun avant que tu ne les transfères dans leurs dossiers respectif.

    Du coup si tes fichiers sont dans un dossier boite_noire (Passe le chemin absolu à os.walk(), ça évitera des erreurs si tu ne lances pas ton script à partir du même endroit), ça donnera un code dans ce genre:

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import os
    
    for root, dirs, files in os.walk('boite_noire'):
        for name in files:
            Traitement...

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

Discussions similaires

  1. script shell pour renommer un fichier
    Par wang_xue dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 15/11/2007, 15h45
  2. [Cherche tuto/cours]Script Python pour Unix
    Par elflamby dans le forum Général Python
    Réponses: 2
    Dernier message: 05/09/2007, 14h38
  3. [MySQL] Script PHP pour générer un fichier xml
    Par totofe49 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/05/2007, 15h12
  4. Recherche d'un script PHP pour renommer des fichiers en masse
    Par pekka77 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 19/11/2006, 23h43
  5. Script shell pour modifier plusieurs fichiers
    Par julio_097 dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 03/10/2006, 12h41

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