簡體   English   中英

使用python中的相對路徑尋址到上層目錄

[英]addressing to the upper level directory using relative path in python

我在“mainDirectory/subdirectory/myCode.py”中有一個 python 文件,在我的代碼中,我想在“mainDirectory/some_data.csv”中引用一個 .csv 文件我不想使用絕對路徑,因為我運行不同操作系統中的代碼和使用絕對路徑可能會造成麻煩。 所以簡而言之,有沒有辦法在python中使用相對路徑來引用當前目錄的上層目錄?

我知道如何使用相對路徑來引用當前目錄的子目錄。 但我正在尋找使用相對路徑對上層目錄的尋址。 我不想使用絕對浴,因為該文件將在不同操作系統的不同文件夾中運行。

更新:我在這里找到了一種方法(它不是基於相對路徑,但它可以完成工作):關鍵是使用“。” 用於導入上手目錄。 例如,使用一個點可以訪問同一層目錄。 為了訪問更高的一層,可以使用兩個點。 在上述情況下,要訪問“子目錄”,可以將這一行放在“myCode.py”中

from .subdirectory import something

訪問“主目錄:

from ..mainDirectory import something

如果您查看 Python 文檔,您會發現該語言不是為這樣使用而設計的。 相反,您會想嘗試重構您的目錄,將myCode.py放在像mainDirectory這樣的父級目錄中。

mainDirectory
│   
└───myCode.py
│   
└───subdirectory
    │   
    │   some_data.csv

您正面臨與 PYTHONPATH 的性質有關的問題。 這里有一篇關於處理 PYTHONPATH 的好文章:

https://chrisyeh96.github.io/2017/08/08/definitive-guide-python-imports.html

如果您不熟悉該語言(或者如果您已經使用它多年!)導航 Python 導入語句,則可能會具有挑戰性。 閱讀用於導入的 PEP8 約定,並確保您的項目符合標准語言約定可以為您節省大量時間,並在您需要重構目錄樹時節省大量混亂的git commits

這個問題可能與此處回答的問題重復 - 從父文件夾導入模塊

您始終可以使用 os 包提供的 API 在運行時導出絕對路徑。

 import os
dirname = os.path.dirname(__file__)
filename = os.path.join(dirname, 'relative/path/to/file/you/want')

完整的答案總是點擊一下。 Python中的相對路徑

os.path中有幾個工具可供您使用:

from os.path import dirname
upper = dirname(dirname(__filepath__))

這是訪問上層目錄的更全面答案的鏈接: 如何在 Python 中獲取父目錄?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM