This question already has answers here:
Way to access resource files in python
                                
                                    (3个答案)
                                
                        
                                6年前关闭。
            
                    
在Java中,如果我想读取一个包含算法资源资源的文件,该怎么做,以便正确引用该路径。

澄清度
我试图了解在Python世界中如何将数据和代码打包到模块中。

例如,我可能正在编写一些查看字符串的代码,并试图对编写文本所用的语言进行分类。为此,我需要一个包含有关语言模型数据的文件。

因此,当我的代码被调用时,我想加载与模块一起打包的一个或多个文件。我不清楚如何在Python中做到这一点。

TIA。

最佳答案

我认为您可能正在寻找pkgutil.get_data()。这个文档说:

pkgutil.get_data(package, resource)



  从包中获取资源。
  
  这是PEP 302加载程序get_data()API的包装。包装
  参数应该是包的名称,采用标准模块格式
  (foo.bar)。资源参数应采用相对形式
  文件名,使用/作为路径分隔符。父目录名称..
  不允许,也不是根名称(以/开头)。
  
  该函数返回一个二进制字符串,该字符串是
  指定资源。
  
  对于位于文件系统中的软件包,已经
  导入的,这大致相当于:

d = os.path.dirname(sys.modules[package].__file__)
data = open(os.path.join(d, resource), 'rb').read()

  
  如果包装不能
  找到或加载,或者使用不支持的PEP 302加载程序
  get_data(),然后返回None。

09-10 03:15
查看更多