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 :

création de dossier impossible sous windows XP


Sujet :

Python

  1. #1
    Membre habitué Avatar de bringer
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2009
    Messages : 122
    Points : 137
    Points
    137
    Par défaut création de dossier impossible sous windows XP
    Bonjour à tous,

    J'ai un problème dans mon application développée sous linux Ubuntu et qui fonctionne bien sur celui-ci.
    J'ai besoin de vérifier et créer le cas échéant un dossier pour stocker des export d'états en csv pour réaliser un publipostage. Sous linux, pas de soucis, mais sous XP, le prog me dis que le disque est plein ou en lecture seule.
    Je peux malgré tout créer dossiers, et fichier "à la main" sous l'explorateur sans aucun soucis. Seule l'appli refuse.

    Voici mon bout de 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
    #vérifier que ce répertoire existe bien
    		#si le repertoire n'existe pas
    		if not os.path.exists(self.__report_path):
    			#creer le repertoire
    			self.__logger.info("create_file_name : le repertoire <%s> n'existe pas. Création du répertoire"%self.__report_path)
    			try:
    				os.mkdir(self.__report_path, 0777)
    			except IOError:
    				self.__logger.error("create_file_name : Le repertoire <%s> n'a pas pu etre créé. le répertoire courant sera utilisé"%self.__report_path)
    				active_report_path=os.getcwd()
    			else:
    				self.__logger.debug("create_file_name : le répertoire <%s> à été créé correctement"%self.__report_path)
    				active_report_path=self.__report_path
    		else:
    			active_report_path=self.__report_path
    L'administrateur info m'a confirmé que l'utilisateur du poste à les droits en lecture, écriture.
    De plus, il a dévérouillé sous dos les attributs supposés bloquant par la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c:\attrib -s -r +chemin du répertoire concerné
    Après tout cela, aucun changement.
    Quelqu'un aurait-il déjà rencontré ce problème?

    Merci d'avance.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 141
    Points : 184
    Points
    184
    Par défaut
    Salut !

    A vérifier, mais ça peut expliquer le problème : si tu dois créer + qu'un répertoire, mkdir ne marchera pas.

    Par exemple, tu veux créer le dossier C:\chemin\quelconque et que le sous-dossier chemin de C: n'existe pas, mkdir lancera une exception.

    Si c'est le cas, il faut utiliser la fonction makedirs du module os.

  3. #3
    Membre habitué Avatar de bringer
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2009
    Messages : 122
    Points : 137
    Points
    137
    Par défaut
    bonjour nardo47,

    J'utilisais makedirs au départ dans le code, mais cela ne fonctionnait pas plus. J'ai changé en mkdir en pensant que cela pouvait éventuellement provenir de makedirs, sans succés.

    De plus, le répertoire racine existe bien, c'est le répertoire de l'application.

    Est ce que cela pourrait venir de la version de python. 2.6 sur le poste XP ?
    2.5.2 sur mon poste linux.

    merci quand même de ta réponse.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 141
    Points : 184
    Points
    184
    Par défaut
    Citation Envoyé par bringer Voir le message
    Est ce que cela pourrait venir de la version de python. 2.6 sur le poste XP ?
    2.5.2 sur mon poste linux.
    Je dirais non, vu que j'ai la même config (python 2.6 sur XP) ici, que j'utilise abondamment les 2 fonctions et que tout marche.

    Je ne vois pas ce qui peut bloquer.
    Peut-être que regarder le message de l'exception levée permettra d'avoir + d'infos.

  5. #5
    Membre habitué Avatar de bringer
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2009
    Messages : 122
    Points : 137
    Points
    137
    Par défaut
    Ok, je regarde demain (l'utilisateur est parti) pour voir ce que me renvoie mon fichier log et je tiens au courant.

  6. #6
    Membre habitué Avatar de bringer
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2009
    Messages : 122
    Points : 137
    Points
    137
    Par défaut
    bonjour à tous,

    je reviens vers vous avec ce problème de création de dossier sous XP.
    J'ai été voir mon log file qui m'indique une erreur N°2 : No such file or directory au moment de la création du dossier ou du fichier export.
    Or, j'ai essayé en créant manuellement le dossier au bon endroit, et rien ni fait, le message persiste.

    J'en appel de nouveau aux compétences du forum, parce que là, je ne comprend pas.

    Bringer

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 141
    Points : 184
    Points
    184
    Par défaut
    Salut !

    Il faudrait vérifier que l'attribut __report_path est bien un chemin absolu et non relatif.

    C'est la seule piste que j'ai et je n'y crois pas vraiment, vu que tu as dit avoir eu le même problème avec makedirs.

    Plus généralement, il faudrait vérifier les valeurs de :
    * __report_path ;
    * os.getcwd() ;
    * l'arborescence sur laquelle tu veux créer le dossier.

    Mais tout cela ne servira surement à rien, vu que ton prog marche sous Linux.

    Donc, vérifier les différences avec Windows:
    * peux-tu confirmer avec ton admin info qu'il ne fallait pas ajouter l'argument /d à la commande attrib ?
    * l'utilisateur a les droits RW depuis son poste, mais le prog Python est-il lancé depuis son poste ?
    * tu n'utilises pas de propriétés propres à Linux (genre "~" pour le répertoire de l'utilisateur) ?
    * et toute autre subtilité sur la gestion des droits sous Windows à laquelle je n'aurais pas pensé...

  8. #8
    Membre habitué Avatar de bringer
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2009
    Messages : 122
    Points : 137
    Points
    137
    Par défaut
    Petite avancée,

    Je viens de tester sur le poste XP la commande os.mkdir(path) en mode console.
    Je constate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    os.mkdir('c:\rep1\rep2') renvoie une erreur windows
    WindowsError: [Error 123] Syntaxe du nom de fichier, de répertoire ou de volume incorrecte: 'c:\\Gdia\test'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.mkdir('/Gdia/test') --> fonctionne
    Donc, dans mon code j'ai modifié le chemin en '/Gdia/repertoire final', mais du coup, quand je fais une commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.path.join(path,fichier)
    il génère la ligne : '/Gdia/test2\\testfile.txt'
    Et ne créer aucun fichier.

    Pourtant, le module <os> gère les accés et création de répertoire et fichier en fonction du système d'exploitation (vive la portabilité), mais là, que ce passe t-il ??

  9. #9
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067

  10. #10
    Membre habitué Avatar de bringer
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2009
    Messages : 122
    Points : 137
    Points
    137
    Par défaut
    bonjour à tous,

    je reviens vers vous car j'ai enfin trouvé la raison pour laquelle le fichier ne se créer pas (et non pas le répertoire comme je le pensais au départ). En fait, il s'agit d'une erreur que j'ai génèré en voulant activer un système d'archivage dans la création des fichiers de publipostage. Quand je génère le fichier, je lui donne un nom générique et je lui ajoute la date et l'heure de création avant l'extension.
    Cela donne un nom de fichier de la forme : fichier_26-11-09_21:35:46.csv
    Sous linux, pas de problème, mais sous windows, les ":" pour séparer heures, minutes et secondes, cela ne passe pas. C'était assez évident (maintenant que j'ai trouvé), mais j'ai cherché un moment.

    Merci à tous de votre aide

    Bringer

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/11/2014, 15h56
  2. Création de base impossible sous dédié Plesk
    Par sbo33 dans le forum Installation
    Réponses: 0
    Dernier message: 11/06/2008, 11h11
  3. Réponses: 0
    Dernier message: 03/04/2008, 12h35
  4. Création de fichier .htaccess sous Windows
    Par Invité dans le forum Apache
    Réponses: 2
    Dernier message: 31/03/2008, 01h36
  5. Réponses: 2
    Dernier message: 23/11/2007, 10h52

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