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 :

concaténer variable et chemin


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2016
    Messages : 67
    Par défaut concaténer variable et chemin
    Bonjour,
    je souhaiterai concaténer un chemin + une variable avec les guillemets
    par quel caractère remplace t'on les ""?
    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
    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    import arcpy
    import os
    import time
    os.chdir (r"G:\Expert\03_DGST\Script\Scripts_Python")
    os.system ("extractBdDTR.bat")
    print (ur"Extraction BdDTR terminée vers G:\Expert\03_DGST\BdDTR")
    today = time.strftime('%d-%m-%Y',time.localtime())
    print (today)
    fdataset = []
    arcpy.env.workspace = \""r"G:\Expert\03_DGST\BdDTR\\" + today
    print (arcpy.env.workspace) 
    for fdataset in os.walk(arcpy.env.workspace):
        fdataset = arcpy.ListDatasets('*.dwg')
    for dwg in fdataset :
        print (dwg)
    pouvez vous m'aider svp?
    merci

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

    Fabriquer un répertoire à partir de bouts de noms de répertoires se fait facilement avec os.path.join
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arcpy.env.workspace = os.path.join(r"G:\Expert\03_DGST\BdDTR" + today)
    note: et çà évite d'avoir un '\' en fin de littéral que python n'aime pas.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur banc de test
    Inscrit en
    Mai 2014
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur banc de test
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2014
    Messages : 199
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Fabriquer un répertoire à partir de bouts de noms de répertoires se fait facilement avec os.path.join
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arcpy.env.workspace = os.path.join(r"G:\Expert\03_DGST\BdDTR" + today)
    note: et çà évite d'avoir un '\' en fin de littéral que python n'aime pas.
    - W
    Vous vouliez dire , today je suppose.



    os.path.join(path, *paths) assemble chaque élément/arguments *paths à path en ajoutant le séparateur "\\", sauf pour le disque où il faut préciser les "\\".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    os.path.join("C:", "dossier", "sous_dossier", "fichier.txt")
    'C:dossier\\sous_dossier\\fichier.txt'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    os.path.join("C:\\", "dossier", "sous_dossier", "fichier.txt")
    'C:\\dossier\\sous_dossier\\fichier.txt'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    os.path.splitdrive(path)
    ('C:', '\\dossier\\sous_dossier\\fichier.txt')
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    os.path.join(*os.path.splitdrive(path))
    'C:\\dossier\\sous_dossier\\fichier.txt'
    qu'on peut remplacer par la méthode :

    str().join(iterable)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "\\".join(["C:", "dossier", "sous_dossier_1", "sous_dossier_2"])
    'C:\\dossier\\sous_dossier_1\\sous_dossier_2'
    os.path.sep retourne le séparateur utilisé par le système: "\\"

    On peut donc écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    path = os.path.sep.join(["C:", "dossier", "sous_dossier_1", "sous_dossier_2"])
    'C:\\dossier\\sous_dossier_1\\sous_dossier_2'
    Et si on n'est pas sûr que l'assemblage ne contenait pas de '\\' au début du dossier à assembler il suffit de rajouter :
    os.path.normpath(path)

    Pour éviter ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "\\".join(["C:", r'\dossier\sous_dossier\fichier.txt'])
    'C:\\\\dossier\\sous_dossier\\fichier.txt'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    os.path.normpath("\\".join(["C:", r'\dossier\sous_dossier\fichier.txt']))
    'C:\\dossier\\sous_dossier\\fichier.txt'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    os.path.normpath("\\".join(["C:", r'dossier\sous_dossier\fichier.txt']))
    'C:\\dossier\\sous_dossier\\fichier.txt'
    donnera un chemin valide et identique dans les deux cas

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2016
    Messages : 67
    Par défaut
    Merci beaucoup,
    j'ai une deuxième question concernant la partie de code suivante :
    je veux parcourir récursivement un répertoire (contenant 3 répertoires) afin de lister des fichiers de types .dwg
    sauf qu'il doit surement manquer qqch car cela ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    fdataset = []
    arcpy.env.workspace = \""r"G:\Expert\03_DGST\BdDTR\\" + today
    print (arcpy.env.workspace) 
    for fdataset in os.walk(arcpy.env.workspace):
        fdataset = arcpy.ListDatasets('*.dwg')
    for dwg in fdataset :
        print (dwg)
    merci d'avance

  5. #5
    Membre éclairé 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
    Par défaut
    Citation Envoyé par Rizcolas62 Voir le message
    Merci beaucoup,
    j'ai une deuxième question concernant la partie de code suivante :
    je veux parcourir récursivement un répertoire (contenant 3 répertoires) afin de lister des fichiers de types .dwg
    sauf qu'il doit surement manquer qqch car cela ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    fdataset = []
    arcpy.env.workspace = \""r"G:\Expert\03_DGST\BdDTR\\" + today
    print (arcpy.env.workspace) 
    for fdataset in os.walk(arcpy.env.workspace):
        fdataset = arcpy.ListDatasets('*.dwg')
    for dwg in fdataset :
        print (dwg)
    merci d'avance
    Salut,

    Tu devrais trouver ton bonheur ici : http://python.developpez.com/faq/?page=Fichier

Discussions similaires

  1. concaténation Variables vbs
    Par Nabou- dans le forum VBScript
    Réponses: 2
    Dernier message: 01/07/2007, 14h08
  2. concaténation variable ... addition :?
    Par camyo dans le forum Langage
    Réponses: 22
    Dernier message: 05/03/2007, 21h19
  3. concaténation variables de type std::bitset<>
    Par sanatou dans le forum SL & STL
    Réponses: 3
    Dernier message: 09/11/2006, 22h55
  4. [MySQL] Problème concaténation variables
    Par renaud26 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 19/03/2006, 17h33
  5. [Tableaux] problème syntaxe concaténation variable
    Par mussara dans le forum Langage
    Réponses: 3
    Dernier message: 01/03/2006, 11h24

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