您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python:如何从不同目录访问文件

Python:如何从不同目录访问文件

如果conf是Python软件包,则可以使用pkgutil.get_data()

import pkgutil

data = pkgutil.get_data("conf", "constants.cfg")

或是否setuptools已安装–pkg_resources.resource_string()

import pkg_resources

data = pkg_resources.resource_string('conf', 'constants.cfg')

如果constants.cfg不在软件包中,则将其路径作为命令行参数传递,或者将其设置为环境变量(例如)CONfig_MANAGER_CONSTANTS_PATH,或者从一组固定的认路径(例如)中读取os.path.expanduser("~/.config/ConfigManager/constants.cfg")。要查找放置用户数据的位置,可以使用appdirsmodule

os.getcwd()如果您可能ConfigManager.py从其他目录运行,则不能使用该函数返回当前工作目录。相对路径"../../..."由于相同的原因而行不通。

如果可以确定ConfigManager.pyconstants.cfg文件系统中的相对位置不会改变:

import inspect
import os
import sys

def get_my_path():
    try:
        filename = __file__ # where we were when the module was loaded
    except NameError: # fallback
        filename = inspect.getsourcefile(get_my_path)
    return os.path.realpath(filename)

# path to ConfigManager.py
cm_path = get_my_path()
# go 6 directory levels up
sp_path = reduce(lambda x, f: f(x), [os.path.dirname]*6, cm_path)
constants_path = os.path.join(sp_path, "conf", "constants.cfg")
python 2022/1/1 18:42:09 有290人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶