代码之家  ›  专栏  ›  技术社区  ›  jbeard4

Python相当于Java的类.GETReal[[复制] ]

  •  1
  • jbeard4  · 技术社区  · 14 年前

    这个问题已经有了答案:

    我的pythonpath上有一些XML文件,我希望使用它们在pythonpath上的路径加载,而不是使用它们在文件系统上的(相对或绝对)路径加载。我可以简单地将它们作为字符串嵌入到Python模块中(yay多行字符串文本),然后使用常规的 import 语句,但如果可能的话,我希望将它们作为常规XML文件分开。在Java世界中,解决这个问题的方法是使用 Class.getResource 方法,我想知道在Python中是否存在类似的东西。

    2 回复  |  直到 14 年前
        1
  •  8
  •   mg.    14 年前

    看看 pkg_resources ,它包含用于包含到通用资源的API。它被认为是与巨蟒蛋一起工作的,所以它可能是你需要的更多。

    就拿医生的例子来说:

    import pkg_resources
    my_data = pkg_resources.resource_string(__name__, "foo.dat")
    
        2
  •  6
  •   ig0774    14 年前

    我不知道内置的什么东西,但是像下面这样的东西应该模拟行为(假设文件在本地磁盘上),我不相信数据存储支持非本地文件路径,而Java类路径可以包含远程资源的URL)。

    def get_pypath_resource(resource_name):
        for path in sys.path:
            if os.path.exists(os.path.join(path, resource_name)):
                return os.path.join(path, resource_name)
        raise Exception('Resource %s could not be found' % resource_name)