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

Python:如何从不同目录访问文件,第1张

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

如果

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

import pkgutildata = pkgutil.get_data("conf", "constants.cfg")

或是否

setuptools
已安装–
pkg_resources.resource_string()

import pkg_resourcesdata = pkg_resources.resource_string('conf', 'constants.cfg')

如果

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

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

如果可以确定

ConfigManager.py
constants.cfg
在文件系统中的相对位置不会改变:

import inspectimport osimport sysdef 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.pycm_path = get_my_path()# go 6 directory levels upsp_path = reduce(lambda x, f: f(x), [os.path.dirname]*6, cm_path)constants_path = os.path.join(sp_path, "conf", "constants.cfg")


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5674346.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存