Comment ça marche mkdir et makedirs ?

Résolu
undertaker4000 Messages postés 11 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 14 février 2012 - 5 nov. 2010 à 15:16
undertaker4000 Messages postés 11 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 14 février 2012 - 6 nov. 2010 à 06:13
Bonjour,
je cherche à écrire un petit "machin" qui me permet de créer un dossier - avec sous-dossiers et fichiers - en fonction de quelques paramètres particuliers comme le titre, un numéro de série.

Mais où je coiiiince c'est à 2 endroits :
1. Au moment de vouloir créer un nouveau dossier :
rep_cour = os.getcwd() #Ici : OK
lstDossiers = ['/Dossier00', '/Dossier01']

for i in lstDossiers:
    print 'Dossier cree : ', rep_cour + i #Ici : OK
    NouvRep 'NouvRep ' + rep_cour + i
    print NouvRep   #Ici : OK
    os.mkdir(NouvRep)   #Ici : MON PROBLEME !


À ma dernière instruction, j'ai un message d'erreur :

...line 29, in <module> os.mkdir(NouvRep)
OSError: [Errno 2] No such file or directory: 'NouvRep = /media/65525C0E6FEBBD75_/Mes documents/... /Edition_Linux/Dossier00/'

or, je veux créer un nouveau dossier appelé - dans cet exemple minimaliste - "Dossier00"
J'ai essayé également sans le '/' après le nom du nouveau dossier, mais rien n'y fait !

Comment faire pour que le contenu de la variable NouvRep soit compris par le système comme étant l'adresse du dossier à créer ?

2. Dans le même ordre d'idée, je ne comprends pas comment je peux encoder un dossier complet (c'est-à-dire avec sous-dossiers compris en employant la commande os.makedirs()

Merci de m'aider.
A+

2 réponses

lespinx Messages postés 106 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 23 novembre 2022 77
5 nov. 2010 à 19:42
Bonsoir,
Je suis sous Windows XP et ça marche très bien avec ce code:
import os

newrep = "C:\\Python_Test"
#On indique le nouveau repertoire courant
os.chdir(newrep)
print os.getcwd()

for dossier in ['Dossier00', 'Dossier01', 'Dossier02']:
    os.makedirs(dossier)

for dossier in os.listdir(newrep):
    print dossier
3
undertaker4000 Messages postés 11 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 14 février 2012
6 nov. 2010 à 06:13
Bonjour lespinx,
Merci pour ton aide précieuse.
En relisant mon code à tête reposée, j'ai constaté que j'avais commis un grosse grosse fôte d'inattention dans mon code :
    NouvRep 'NouvRep ' + rep_cour + i

L'ajout d'une chaîne 'NouvRep = ' pour constituer l'adresse du répertoire a perturbé Python qui m'a envoyé un message d'erreur que je n'ai pas su comprendre tout de suite ... la fatigue, l'obstination et ... mon grand âââge, peut-être

Il faut bien reconnaître qu'au niveau de la doc officielle, ces deux instructions sont très peu détaillées. Il est également vrai que quand on les a fait tourner une fois, on a compris comment ça va surtout quand on s'y est cassé les dents dessus quelques heures. Là, au moins, on sait ce qu'il ne faut pas faire. Hi hi hi

Merci pour ton aide.
A+
OVéMast
0
Rejoignez-nous