Maison  >  Article  >  développement back-end  >  Comment lire un fichier à partir d’un sous-répertoire en utilisant un chemin relatif en Python ?

Comment lire un fichier à partir d’un sous-répertoire en utilisant un chemin relatif en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-01 07:31:02748parcourir

How to Read a File from a Subdirectory Using a Relative Path in Python?

Lecture d'un fichier à l'aide d'un chemin relatif dans un projet Python

Le problème concerne l'utilisation de chemins relatifs dans les projets Python, en particulier lorsque essayer d'accéder aux fichiers dans la structure du projet. Lorsque vous tentez de lire un fichier à partir d'un sous-répertoire à l'aide d'un chemin relatif dans le code, vous pouvez rencontrer des erreurs.

Le problème se pose car les chemins relatifs dépendent du répertoire de travail actuel. Cela signifie que si vous exécutez le script principal (main.py) à partir du répertoire du projet, le chemin relatif (../data/test.csv) dans module.py ne sera pas résolu correctement. Il ferait référence à un emplacement en dehors du répertoire du projet au lieu du sous-répertoire de données prévu.

Pour résoudre ce problème, il est recommandé d'utiliser des chemins absolus, qui ne sont pas relatifs au répertoire de travail actuel. Une approche consiste à utiliser l'attribut spécial file, qui fournit le chemin absolu vers le script en cours d'exécution. À partir de là, vous pouvez construire le chemin absolu vers le fichier souhaité en utilisant Pathlib (pour Python 3.4) ou os.path (pour les anciennes versions de Python) :

Utilisation de Pathlib (Python 3.4) :

<code class="python">from pathlib import Path

path = Path(__file__).parent / "../data/test.csv"</code>

Utilisation de os.path :

<code class="python">import os.path

my_path = os.path.abspath(os.path.dirname(__file__))
path = os.path.join(my_path, "../data/test.csv")</code>

En utilisant des chemins absolus, vous pouvez toujours accéder correctement aux fichiers, quel que soit le répertoire de travail actuel.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn