【问题标题】:How do I associate files with the xml that references them in Python?如何将文件与在 Python 中引用它们的 xml 关联?
【发布时间】:2020-10-04 17:42:24
【问题描述】:

我有两个目录:资产和元数据。 assets 目录有一堆视频文件,而 metadata 目录有一堆现有的 xml 文件。

我想计算校验和并获取所有资产的文件大小,并将它们放入与其匹配的元数据中。这些字段已经存在,但为空。

我正在使用元素树进行解析,并且已经能够获取文件大小和校验和,但我不确定如何将它们放入正确的元数据中。视频文件使用一个 ID 命名,该 ID 也存在于元数据中,并且已经分配给变量“id”,所以我想我可以像这样关联它们:

for file in glob.glob("*.mov"):
    if file == (id + '.mov'):
        video_filename = file
    elif video_filename != (id + '.mov'): 
        print(id, 'There is no video file associated with that ID!!!')

当我运行脚本时,它首先看到了其他文件之一,我得到了上面的 else if 条件。

如何检查我有正确的 xml 视频文件以及数据是否进入正确的 xml 文件?

【问题讨论】:

  • 如果您正在寻找名称与(id + '.mov') 匹配的文件,那么您正在寻找具有特定名称的文件,对吧?那么,当您可以直接按名称引用一个文件时,为什么要遍历目录中的所有文件呢?
  • 因为我有多个 .xml 和多个 .mov。我希望能够运行一次脚本并处理目录中的所有文件。
  • 那你需要不同的逻辑。您应该从文件名中提取id。您不必为每个id 浏览目录中的所有文件。但你可以这样做。如果其中一个文件匹配,那么您的代码将照常工作。因此,如果文件名不匹配,则不要执行任何操作...只需删除您的 elif 案例(顺便说一句,可能只是 else:

标签: python elementtree


【解决方案1】:
  • 遍历所有电影文件并制作 {id:filepath} 对的字典。
  • 遍历 xml 文件,为每个元数据获取其电影的 ID
    • 并使用该 ID 和字典来查找正确电影文件的路径
    • 处理电影文件
    • 将新信息放入元数据中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 2011-07-05
    • 2018-09-02
    • 2014-08-25
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    相关资源
    最近更新 更多