【问题标题】:Create XML file with relative paths创建具有相对路径的 XML 文件
【发布时间】:2014-04-11 07:49:00
【问题描述】:

我有一个绝对文件路径列表。我想创建一个包含标签列表的 XML 文件:<file path="relative path"/> 相对路径是我正在创建的 XML 文件和文件位置之间的路径,但我不知道该怎么做。

是否有任何 Python 库可以做到这一点?

谢谢

【问题讨论】:

    标签: python relative-path


    【解决方案1】:

    你想要os.path模块的relpath函数:

    from os.path import relpath
    
    In [5]: os.path.relpath("test.txt",start="/")
    Out[5]: 'Users/ebarr/test.txt'
    
    
    In [8]: os.path.relpath("test.txt",start="/Var")
    Out[8]: '../Users/ebarr/test.txt'
    

    第一个参数是路径,第二个参数是你希望它相对的位置。

    【讨论】:

    • 谢谢,但我还有另一个问题:我现在如何进行反向操作;从我创建的相对路径中获取绝对路径?
    • @user3328690 使用os.path.abspath
    • @ebarr 当我使用 os.path.abspath 它返回来自实际文件的绝对路径,这是一个 python 文件,我期望得到反向操作;我创建的 xml 文件的绝对路径.. 谢谢
    • @user3328690 我很困惑,“绝对路径来自”是什么意思?绝对路径是绝对的。它只能来自一个地方,即“/”。
    【解决方案2】:

    您可能想先查看Element Tree XML API。该 API 实现了一个简单高效的 API,用于解析和创建 XML 数据。

    这是updated documentation for the same Element Tree XML API (different Python version)的链接

    正如第二个文档中所述,“xml.etree.ElementTree 模块实现了一个简单而高效的 API,用于解析和创建 XML 数据。”

    最后,处理相对路径(如@ebarr 所述,我引用):

    "你想要os.path模块的relpath函数:

    from os.path import relpath
    
    In [5]: os.path.relpath("test.txt",start="/")
    Out[5]: 'Users/ebarr/test.txt'
    
    
    In [8]: os.path.relpath("test.txt",start="/Var")
    Out[8]: '../Users/ebarr/test.txt'
    

    第一个参数是路径,第二个参数是你希望它相对的位置。"

    【讨论】:

    • 我的问题不是创建 xml 文件。我的问题是如何获取描述的相对路径。谢谢您的回答
    • 这是有道理的。我打算从 os.path 模块中推荐 relpath 函数,但请注意,ebarr 刚刚发布了一个很好的示例来关闭问题的其余部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多