Python:检查数据文件相对于源代码文件是否存在



我有一个小的文本(XML)文件,我希望加载一个Python函数。文本文件的位置始终与 Python 函数代码处于固定的相对位置。

例如,在我的本地计算机上,文件文本.xml和 mycode.py 可能驻留在:

/a/b/text.xml
/a/c/mycode.py

稍后在运行时,文件可能驻留在:

/mnt/x/b/text.xml
/mnt/x/c/mycode.py

如何确保我可以加载文件?我需要绝对路径吗?我看到我可以使用os.path.isfile,但这假定我有一条路径。

您可以按如下方式进行调用:

import os
BASE_DIR = os.path.dirname(os.path.realpath(__file__))

这将获取您从mycode.py调用的 python 文件的目录

然后访问 XML 文件非常简单:

xml_file = "{}/../text.xml".format(BASE_DIR)
fin = open(xml_file, 'r+')

如果两个目录的父目录始终相同,这应该可以工作:

import os
path_to_script = os.path.realpath(__file__)
parent_directory = os.path.dirname(path_to_script)
for root, dirs, files in os.walk(parent_directory):
    for file in files:
        if file == 'text.xml':
            path_to_xml = os.path.join(root, file)
您可以使用

特殊变量__file__,它为您提供当前文件名(请参阅 http://docs.python.org/2/reference/datamodel.html)。

因此,在您的第一个示例中,您可以引用文本.xml mycode.py:

xml_path = os.path.join(__file__, '..', '..', 'text.xml')

相关内容

  • 没有找到相关文章

最新更新