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 :

Chemin > dossier [Python 2.X]


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 42
    Points : 19
    Points
    19
    Par défaut Chemin > dossier
    Bonjour,

    j'ai du mal à implémenter un chemin

    Alors voila, disons que je suis dans /home/toto
    Dans le dossier toto, j'ai mon script et 2 dossier titi et tata.

    Pour le moment, mon script créer un dossier "Zabbix" et un fichier csv qui sera dans ce dossier. J'ai donc /home/toto/zabbix/collect.csv

    Donc après au lancement du script, vous avez dans /home/toto:
    un script + dossier titi + dossier tata + dossier "zabbix" qui contient le fichier csv

    J'aimerais que le dossier "zabbix" se crée dans titi et tata.
    Ainsi lorsque j'irais chercher collect.csv, le chemin sera /home/toto/titi/zabbix/collect.csv et dans /home/toto/tata/zabbix/collect.csv

    Voici le code
    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
     
    #Création du dossier
    nom = time.strftime('%d.%m.%y-%H.%M.%S',time.localtime()) #recuperation date + horaire
     
    dossier = "zabbix_"+nom
     
    newpath = dossier
    os.makedirs(newpath)
     
    #création du CSV
    listes = [item_host(),get_item(),get_name(),get_history()]
    entete = [["Serveur"],["Item"],["Nom"],["Valeur"]]  
     
    with open(os.path.join(newpath,"collect.csv"), "wb") as f:  #j'indique le chemin pour le fichier
     
     
            writer = csv.writer(f, delimiter=';')
            writer.writerows(zip(*entete))
            writer.writerows(zip(*listes))
    Qu'est ce que je dois ajouter ou modifier? toute piste est la bienvenue

    Cordialement

    CHattam

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Avec ce que vous cherchez à faire, il est préférable de travailler avec des chemins absolus afin d'éviter des créations de dossiers à des emplacements non maîtrisés.

    module os.path : https://docs.python.org/3/library/os...s.path.abspath

    Ensuite, si vous souhaitez créer plusieurs dossiers "zabbix_xxx", un dans /home/toto/titi/ et un dans /home/toto/tata/, peut-être faudrait-il envisager une petite itération ?

    Exemple :

    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
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
     
    import os
     
    toto = os.path.abspath(os.path.expanduser("~/toto"))
     
    print(toto)
     
    zabbix = "zabbix_xxx"
     
    dossiers = dict()
     
    for dossier in ("titi", "tata"):
        chemin = os.path.normpath(os.path.join(toto, dossier, zabbix))
        print("\nje crée le dossier :", chemin)
        # os.makedirs(chemin)
        dossiers[dossier] = chemin
    # end for
     
    print("\ndossiers mémorisés :", dossiers)
    @+.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Petite rectification pour toto :

    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
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
     
    import os
     
    toto = os.path.abspath(os.path.expanduser("~"))
     
    print(toto)
     
    zabbix = "zabbix_xxx"
     
    dossiers = dict()
     
    for dossier in ("titi", "tata"):
        chemin = os.path.normpath(os.path.join(toto, dossier, zabbix))
        print("\nje crée le dossier :", chemin)
        # os.makedirs(chemin)
        dossiers[dossier] = chemin
    # end for
     
    print("\ndossiers mémorisés :", dossiers)

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

Discussions similaires

  1. probleme pour recuperer le chemin du dossier courant
    Par HoB dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 11/08/2007, 11h22
  2. [VBA E] explorateur pour obtenir chemin de dossier
    Par gruget dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/02/2007, 14h31
  3. [HTML] prédéfinir le chemin du dossier des images de mon site
    Par cari dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 31/10/2006, 21h58
  4. [.Net 2] Comment récupérer le chemin du dossier du FrameWork .Net ?
    Par FremyCompany dans le forum Framework .NET
    Réponses: 3
    Dernier message: 04/05/2006, 21h08
  5. recuperer le chemin du dossier selectionné ds un JFileChoose
    Par dimitrimm972 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 08/04/2006, 15h57

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