首頁 >後端開發 >Python教學 >如何在 Python 專案中使用相對路徑存取檔案:為什麼 \'../data/test.csv\' 失敗以及如何修復它?

如何在 Python 專案中使用相對路徑存取檔案:為什麼 \'../data/test.csv\' 失敗以及如何修復它?

DDD
DDD原創
2024-10-28 02:51:30983瀏覽

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

在Python 專案中使用相對路徑讀取檔案

背景:

背景:
project
    /data
        test.csv
    /package
        __init__.py
        module.py
    main.py

通常具有帶有各種目錄和模組的特定檔案結構。使用相對路徑從不同模組內存取檔案有時會導致錯誤。考慮以下項目結構:

在此範例中,module.py 檔案嘗試使用相對路徑(“../data/test.csv”)存取test.csv 文件,但遇到從main .py 運行時發生錯誤。

解釋:

直接從使用 module.py 時,相對路徑的解釋會有所不同,取決於使用它們的模組。在包目錄中,相對路徑有效,因為它是相對於模組的位置的。但是,當 main.py 匯入並執行模組時,相對路徑將變為相對於 main.py 檔案位置。

  1. 解:

    絕對路徑:
    <code class="python">path = os.path.abspath("path/to/test.csv")</code>
  2. 絕對路徑指定完整的檔案位置,無論當前工作目錄如何。在 Python 中建構絕對路徑,使用 os.path.abspath()。

    Pathlib:
    <code class="python">from pathlib import Path
    
    path = Path(__file__).parent / "../data/test.csv"</code>
  3. 如果使用 Python 3.4 或更高,pathlib提供了更簡潔的方式來建構絕對路徑。

    file

    屬性:
    <code class="python">import os.path
    
    path = os.path.join(os.path.dirname(__file__), "../data/test.csv")</code>
腳本的 __file__ 屬性傳回其絕對路徑。使用此屬性,您可以計算目標檔案的絕對路徑。

建議:為了更好的兼容性和清晰度,通常建議對於Python 3.4 使用pathlib 解決方案,對於較舊的Python 版本使用os.path.join() 解決方案。

以上是如何在 Python 專案中使用相對路徑存取檔案:為什麼 \'../data/test.csv\' 失敗以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn