首页 > 解决方案 > 在同一目录中查找资源文件

问题描述

我正在构建一个需要访问同一文件夹中的资源的应用程序(它需要 xsd 文件来验证输入文件)。

我怎样才能可靠地访问这个 xsd 文件?

详细说明:

  1. 我需要能够调用可执行文件:

    cd not/the/directory/of/the/program
    path/to/program -c config.xml
    
  2. 这里使用的路径是什么?

    subprocess.Popen("xmllint --noout --schema ?/?/config.xsd " + configfilename)
    

标签: pythonrelative-pathabsolute-path

解决方案


看看你的程序得到的第零个命令行参数。它通常是程序的名称,也可能包括程序的路径。将其与当前目录结合起来。然后使用realpath或类似的东西来摆脱符号链接。但是,我认为仍然存在一些极端情况,这种方法可能会失败。

您没有指定/您正在使用的编程语言/或操作系统。如果您正在编写 bash 脚本,请参见此处: https ://stackoverflow.com/a/246128/11451509

对于 Python,请参阅如何在 Python 中获取当前执行文件的路径?

如果操作系统是 Linux,您也可以通过/proc伪文件系统,如下所述: https ://stackoverflow.com/a/738024/11451509


推荐阅读