Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara Mengakses Fail Menggunakan Laluan Relatif dalam Projek Python: Mengapa \"../data/test.csv\" Gagal dan Bagaimana untuk Membetulkannya?

Cara Mengakses Fail Menggunakan Laluan Relatif dalam Projek Python: Mengapa \"../data/test.csv\" Gagal dan Bagaimana untuk Membetulkannya?

DDD
DDDasal
2024-10-28 02:51:30886semak imbas

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

Membaca Fail Menggunakan Laluan Relatif dalam Projek Python

Latar Belakang:

Python projek selalunya mempunyai struktur fail tertentu dengan pelbagai direktori dan modul. Mengakses fail dari dalam modul yang berbeza menggunakan laluan relatif kadangkala boleh mengakibatkan ralat. Pertimbangkan struktur projek berikut:

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

Dalam contoh ini, fail module.py cuba mengakses fail test.csv menggunakan laluan relatif ("../data/test.csv", tetapi menemui ralat apabila dijalankan dari main.py.

Penjelasan:

Laluan relatif ditafsirkan secara berbeza bergantung pada modul tempat ia digunakan secara langsung direktori pakej, laluan relatif berfungsi kerana ia adalah relatif kepada lokasi modul Walau bagaimanapun, apabila main.py mengimport dan menjalankan modul, laluan relatif menjadi relatif kepada lokasi fail main.py.

Penyelesaian:

  1. Laluan Mutlak:

    Laluan mutlak menentukan lokasi fail yang lengkap, tanpa mengira direktori kerja semasa bina laluan mutlak dalam Python, gunakan os.path.abspath().

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

    Jika menggunakan Python 3.4 atau lebih tinggi, pathlib menyediakan cara yang lebih ringkas untuk membina laluan mutlak.

    <code class="python">from pathlib import Path
    
    path = Path(__file__).parent / "../data/test.csv"</code>
  3. fail Atribut:

    __file__ atribut skrip mengembalikan laluan mutlaknya. Menggunakan atribut ini, anda boleh mengira laluan mutlak ke fail sasaran.

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

Cadangan:

Untuk keserasian dan kejelasan yang lebih baik, biasanya disyorkan untuk menggunakan penyelesaian pathlib untuk Python 3.4 dan penyelesaian os.path.join() untuk versi Python yang lebih lama.

Atas ialah kandungan terperinci Cara Mengakses Fail Menggunakan Laluan Relatif dalam Projek Python: Mengapa \"../data/test.csv\" Gagal dan Bagaimana untuk Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn