Je viens de vivre un comportement étrange dans Python.
J'ai créé une copie d'un fichier script.py dans un sous-dossier dans le dossier contenant le script initial. P>
Le script à la La fin exporte des données dans un fichier .txt à l'aide de: p> Le problème est que Python écrit le nouveau fichier sur le répertoire parent au lieu de l'actuel.
J'ai vérifié le chemin avec: p> et il imprime correctement le chemin actuel. P> p>
3 Réponses :
chemin de création du fichier doit être relatif au répertoire d'exécution p>
E.g. Votre PWD est parent et votre script est en parent / enfant1 / enfant2 / script.py puis chemin du fichier à créer doit être ./ enfant1 / enfant2 / claylist.2203.txt code> p>
Par défaut, les chemins relatifs sont relatifs au répertoire de travail, c'est-à-dire exécuté la commande qui exécute le script.
Si vous souhaitez que le chemin soit relatif du répertoire de script, vous devrez Code explicitement ce comportement: P>
import os filepath = os.path.join(os.path.dirname(__file__), 'clayList.2203.txt') with open(filepath, 'w',encoding='utf-8') as f: # ...
Désolé, je n'ai pas réalisé que Visual Studio essayait d'exécuter le script à partir du répertoire précédent. Merci! En effet 'Imprimer (OS.GETCWD ())' Points sur le répertoire de travail initial
Lorsque vous exécutez le code de Visual Studio, il existe des options de débogage. Un de ceux-ci est le répertoire à partir de "répertoire de travail". (Cliquez avec le bouton droit de la souris sur votre projet et accédez à Paramètres). P>
Pour exécuter du sous-répertoire, vous devez modifier ceci. Si vous souhaitez démarrer dans un serveur sous-répertoire, tapez ci-dessus dans le "répertoire de travail" présenté ici: P>
Comment "changer cela"?
Ajouté plus de détails
Tapez cela dans où?
Ajout d'une image
À moins que vous exécutez le script à partir du répertoire code> parent code>, il ne le fera pas (basé sur votre extrait) :). Même si vous avez copié le
script.py.py code> sur un sous-répertoire, si vous exécutez le
script.py.py code> dans le répertoire code> parent code>, il va créer le fichier
claylist.2203.txt code> dans le répertoire code> parent code>
Le chemin est relatif au répertoire de travail, pas le répertoire de script
Comment allez-vous votre python?
@doctorlove Je l'utilise via Visual Studio