【问题标题】:Load file from same folder as Python 3.x script inside package从与包内 Python 3.x 脚本相同的文件夹加载文件
【发布时间】:2022-01-17 03:26:41
【问题描述】:

从与当前正在执行的 Python 3.x 脚本位于同一文件夹的文件中打开和加载数据可以这样完成:

import os

mydata_path = os.path.join(os.path.dirname(__file__), "mydata.txt")
with open(mydata_path, 'r') as file:
    data = file.read()

然而,一旦脚本和mydata.txt 文件成为 Python 包的一部分,这就不再那么简单了。我已经设法使用pkg_resources 模块中的函数组合来做到这一点,例如resource_exists()resource_listdir()resource_isdir()resource_string()。我不会把我的代码放在这里,因为它很糟糕而且很糟糕(但它有点工作)。

无论如何我的问题是;有没有办法管理与当前执行的 Python 脚本在同一文件夹中的文件加载,无论文件是否在包中?

【问题讨论】:

    标签: python file loading python-packaging pkg-resources


    【解决方案1】:

    您可以使用importlib.resources.read_text 来读取与包相关的文件:

    from importlib.resources import read_text
    
    data = read_text('mypkg.foo', 'mydata.txt')
    

    【讨论】:

    • 至少是这样。谢谢!
    猜你喜欢
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多