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
Libérer: 2024-10-28 02:51:30
original
886 Les gens l'ont consulté

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
Copier après la connexion

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>
    Copier après la connexion
  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>
    Copier après la connexion
  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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!