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

DDD
Lepaskan: 2024-10-28 02:51:30
asal
886 orang telah melayarinya

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
Salin selepas log masuk

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>
    Salin selepas log masuk
  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>
    Salin selepas log masuk
  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>
    Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!