如何解决Python中相对路径的问题

问题描述 投票:0回答:1

我正在开发一个包。我想将一些数据存储在 json 文件中并在我的包中检索这些数据。

def get_contract_details(path: str) -> Tuple[str, list[str]]:
    with open(path, 'r') as file:
        content = json.load(file)
        address = content['address']
        abi = content['abi']
        return address, abi


DETAILS = {
    'uniswap': get_contract_details('_contracts/uniswap_v2_router.json')
}


class Uniswap(BaseRouter):
    def __init__(self, provider: Web3, wallet: Wallet):
        address, abi = DETAILS['uniswap']
        super().__init__(provider, wallet, address, abi)

当我尝试导入类以检索包中的 json 数据时,出现以下错误:

FileNotFoundError: [Errno 2] No such file or directory: '_contracts/uniswap_v2_router.json'

我猜这个问题与相对路径有关。当我尝试导入该类时,它尝试从“CURRENT_PATH/_contracts/uniswap_v2_router.json”而不是“PACKAGE_PATH/_contracts/uniswap_v2_router.json”检索数据。我如何解决此问题并顺利存储和检索此数据?

python file directory filesystems
1个回答
0
投票

您可以尝试获取特定文件的绝对路径

import os

path = '_contracts/uniswap_v2_router.json'
abs_path = os.path.abspath(path)
print(abs_path)
© www.soinside.com 2019 - 2024. All rights reserved.