So greifen Sie in Python-Projekten über relative Pfade auf Dateien zu: Warum schlägt „../data/test.csv' fehl und wie lässt sich das Problem beheben?

DDD
Freigeben: 2024-10-28 02:51:30
Original
886 Leute haben es durchsucht

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

Lesen einer Datei mithilfe eines relativen Pfads in einem Python-Projekt

Hintergrund:

Python Projekte haben oft spezifische Dateistrukturen mit verschiedenen Verzeichnissen und Modulen. Der Zugriff auf Dateien aus verschiedenen Modulen über relative Pfade kann manchmal zu Fehlern führen. Betrachten Sie die folgende Projektstruktur:

project
    /data
        test.csv
    /package
        __init__.py
        module.py
    main.py
Nach dem Login kopieren

In diesem Beispiel versucht die Datei module.py, über einen relativen Pfad („../data/test.csv“) auf die Datei test.csv zuzugreifen, stößt jedoch auf Beim Ausführen von main.py tritt ein Fehler auf.

Erklärung:

Relative Pfade werden je nach Modul, in dem sie verwendet werden, unterschiedlich interpretiert Im Paketverzeichnis funktioniert der relative Pfad, da er relativ zum Speicherort des Moduls ist. Wenn main.py das Modul importiert und ausführt, wird der relative Pfad jedoch relativ zum Speicherort der Datei main.py.

Lösungen:

  1. Absoluter Pfad:

    Ein absoluter Pfad gibt den vollständigen Dateispeicherort an, unabhängig vom aktuellen Arbeitsverzeichnis Erstellen Sie einen absoluten Pfad in Python, verwenden Sie os.path.abspath().

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

    Bei Verwendung von Python 3.4 oder höher, pathlib bietet eine prägnantere Möglichkeit, absolute Pfade zu erstellen.

    <code class="python">from pathlib import Path
    
    path = Path(__file__).parent / "../data/test.csv"</code>
    Nach dem Login kopieren
  3. Datei Attribut:

    The Das Attribut __file__ eines Skripts gibt seinen absoluten Pfad zurück. Mit diesem Attribut können Sie den absoluten Pfad zur Zieldatei berechnen.

    <code class="python">import os.path
    
    path = os.path.join(os.path.dirname(__file__), "../data/test.csv")</code>
    Nach dem Login kopieren

Empfehlung:

Zur besseren Kompatibilität und Übersichtlichkeit Generell wird empfohlen, die pathlib-Lösung für Python 3.4 und die os.path.join()-Lösung für ältere Python-Versionen zu verwenden.

Das obige ist der detaillierte Inhalt vonSo greifen Sie in Python-Projekten über relative Pfade auf Dateien zu: Warum schlägt „../data/test.csv' fehl und wie lässt sich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!