0
votes

Script écrit le fichier dans le mauvais répertoire

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.

Le script à la La fin exporte des données dans un fichier .txt à l'aide de: xxx

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: xxx

et il imprime correctement le chemin actuel.


4 commentaires

À moins que vous exécutez le script à partir du répertoire parent , il ne le fera pas (basé sur votre extrait) :). Même si vous avez copié le script.py.py sur un sous-répertoire, si vous exécutez le script.py.py dans le répertoire parent , il va créer le fichier claylist.2203.txt dans le répertoire parent


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


3 Réponses :


0
votes

chemin de création du fichier doit être relatif au répertoire d'exécution

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


0 commentaires

1
votes

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:
    # ...


1 commentaires

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



1
votes

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).

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:

 Entrez la description de l'image ici


4 commentaires

Comment "changer cela"?


Ajouté plus de détails


Tapez cela dans où?


Ajout d'une image