Mon fichier "file.txt" est alors créé sous "c:/users/mon_nom" alors que mon fichier "test.py" était placé sous "d:/code/blabla". Je voudrais que "file.txt" se créé également sous "d:/code/blabla" et jusqu'alors je n'avais jamais eu ce soucis. Le fichier texte se créait dans le même répertoire que le fichier python.
Quelle manip ai-je fait pour en arriver ici ? Comment la résoudre ?
Merci d'avance
- Edité par i-love-raffa 17 décembre 2015 à 11:21:46
Le fichier créé sera là où se trouve le fichier exécuté, il n'y a pas à chercher plus loin concernant mon code, ça fonctionne ! Si maintenant ce n'est pas ce que tu veux, c'est que tu as omis des informations, où que tu n'exécutes pas ton fichier python à l'endroit que tu l'as défini dans ton problème de départ.
Pour vérifier fait un
import os
path = os.path.dirname(os.path.realpath('__file__'))
print(path)
Jo541 a écrit:
Oldprogrammer a la bonne solution mais il faut faire
Non ça fonctionne sans les quotes ! Peut-être est-il en version 2.x, mais encore une fois, rien n'est spécifié dans les détails pour aider...
Et pourtant même en Python 2 __file__ existe.
Il faudrait un peu plus d'informations pour répondre, car en l'état, le code fourni par oldProgrammer fonctionne très bien.
__file__ est une constante de module. Elle est définie automatiquement par l'interpréteur quand le module est importé pour la première fois dans un programme. Forcément, il n'y a pas de constante __file__ dans l'invite de commandes de l'interpréteur Python (du moins pas dans l'espace de noms global).
Le fichier créé sera là où se trouve le fichier exécuté, il n'y a pas à chercher plus loin concernant mon code, ça fonctionne ! Si maintenant ce n'est pas ce que tu veux, c'est que tu as omis des informations, où que tu n'exécutes pas ton fichier python à l'endroit que tu l'as défini dans ton problème de départ.
Pour vérifier fait un
import os
path = os.path.dirname(os.path.realpath('__file__'))
print(path)
Je suis vraiment désolé et je me répète, mais les deux commandes (print(path) et os.getcwd()) me renvoient : C:\Users\Mon_Nom
Jo541 a écrit:
Oldprogrammer a la bonne solution mais il faut faire
fonctionne parfaitement. le fichier se met à l'endroit où se trouve le script
et si tu veux bouger ton fichier de place, tu fais: "import os" ensuite, tu crées un nouveau dossier au "path" que tu veux et tu déplace ton fichier (il me semble que c'est ça )
oui, donc il faut faire quelque chose dans ce genre?
Varan1 a écrit:
et si tu veux bouger ton fichier de place, tu fais: "import os" ensuite, tu crées un nouveau dossier au "path" que tu veux et tu déplace ton fichier (il me semble que c'est ça )
J'ai créé le fichier avec Pyzo, mais que je l'exécute avec Pyzo ou bien via l'IDLe de Python, cela revient au même ! C'est prise de tête, j'ai l'impression d'être un cas isolé puisque cela fonctionne normalement chez vous !
As-tu essayé d'indiquer tout ton chemain en entier?Sinon, c'est bizarre... et je te dirai bien de réinstaller ton python et peut-être de le mettre dans ton C... mais peut-être cela ne servirait à rien...
une question comme ça, est-ce que ton répertoire principale est le C? Est-ce que cela peut seulement impacter? (là, ça sort du peu de connaissances que j'ai... :D)
Je suis vraiment désolé et je me répète, mais les deux commandes (print(path) et os.getcwd()) me renvoient : C:\Users\Mon_Nom
Donc ton fichier python se trouve dans ce répertoire !
Et pourtant même en Python 2 __file__ existe.
Merci de confirmer, n'ayant pas testé sur python 2.x, j'ai laissé le bénéfice du doute à l'auteur
Je ne remet pas du tout ton code en question, sauf que comme l'a dis Celthon, si tu execute ce code dans interpreter python. __file__ n'existe pas . Or si tu executes un fichier python __file__ existe bien . Peut importe ta version de python . Donc pas besoins de "monter sur tes grands chevaux" :)
Mais d'après l'OP, le code est exécuté depuis un fichier test.py, cette variable devrait donc exister.
Varan1> Il n'est pas utile de changer le répertoire courant, et ça ne changerait rien au problème : il faudrait connaître le répertoire cible. Et non, le point de montage n'a rien à voir là dedans.
i-love-raffa> Et comment l'exécutes-tu précisément ? Pourrais-tu aussi donner des informations plus précises sur les erreurs levées ?
Je ne remet pas du tout ton code en question, sauf que comme l'a dis Celthon, si tu execute ce code dans interpreter python. __file__ n'existe pas . Or si tu executes un fichier python __file__ existe bien . Peut importe ta version de python . Donc pas besoins de "monter sur tes grands chevaux"
Ce message ne t'étais pas destiné... mais à l'auteur !
Créer fichier .txt dans le même répertoire que .py
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique