我需要一个文件(数据库)路径的常量,作为base_directory。我知道python中没有真正的常量。
我这样设置:
base_dir = (os.getcwd().rsplit('\\', 2)[0],)
我需要在多个文件中,在不同的目录/文件夹级别/深度中使用此值。所以我创建了一个包含变量的文件,然后将文件导入到需要的位置。
问题是base_dir
不是基于导入文件的位置(路径)计算的,而是基于当前文件的位置。
所以我根据路径深度有不同的路径。
我每次base_dir
都可以更改以适应新路径,但我不仅要重复var声明,还需要为每个文件重复很多相关代码。
如何解决此问题,模拟路径的常量?
答案 0 :(得分:1)
无需使用os.getcwd。使用os.path.abspath获取常量文件路径:
file_abs_path = os.path.abspath(os.path.dirname(__file__))
使用os.path.join构建数据库文件的路径:
database_path = os.path.join(file_abs_path, '..', 'path', 'to', 'db)
然后导入常量并访问constants.database_path
。