Maison >développement back-end >Tutoriel Python >Comment accéder aux fichiers à l'aide de chemins relatifs dans les projets Python : pourquoi \'../data/test.csv\' échoue et comment y remédier ?

Comment accéder aux fichiers à l'aide de chemins relatifs dans les projets Python : pourquoi \'../data/test.csv\' échoue et comment y remédier ?

DDD
DDDoriginal
2024-10-28 02:51:30974parcourir

How to Access Files Using Relative Paths in Python Projects: Why

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

Contexte :

Python les projets ont souvent des structures de fichiers spécifiques avec différents répertoires et modules. L'accès aux fichiers depuis différents modules à l'aide de chemins relatifs peut parfois entraîner des erreurs. Considérez la structure de projet suivante :

project
    /data
        test.csv
    /package
        __init__.py
        module.py
    main.py

Dans cet exemple, le fichier module.py tente d'accéder au fichier test.csv en utilisant un chemin relatif ("../data/test.csv", mais rencontre une erreur lors de l'exécution à partir de main.py.

Explication :

Les chemins relatifs sont interprétés différemment selon le module à partir duquel ils sont utilisés. dans le répertoire du package, le chemin relatif fonctionne car il est relatif à l'emplacement du module. Cependant, lorsque main.py importe et exécute le module, le chemin relatif devient relatif à l'emplacement du fichier main.py.

Solutions :

  1. Chemin absolu :

    Un chemin absolu spécifie l'emplacement complet du fichier, quel que soit le répertoire de travail actuel. construisez un chemin absolu en Python, utilisez os.path.abspath().

    <code class="python">path = os.path.abspath("path/to/test.csv")</code>
  2. Pathlib :

    Si vous utilisez Python 3.4 ou plus haut, pathlib fournit un moyen plus concis de construire des chemins absolus. L'attribut __file__ d'un script renvoie son chemin absolu. Grâce à cet attribut, vous pouvez calculer le chemin absolu vers le fichier cible.

    <code class="python">from pathlib import Path
    
    path = Path(__file__).parent / "../data/test.csv"</code>
  3. Recommandation :Pour une meilleure compatibilité et clarté, il est généralement recommandé d'utiliser la solution pathlib pour Python 3.4 et la solution os.path.join() pour les anciennes versions de Python.

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