【发布时间】:2012-11-19 17:00:23
【问题描述】:
我希望通过 Python 重新连接我丢失的文件!是否可以读取 XML 文件并获取标签之间的文件名示例:
<Name>A013_C025_08264E.MOV</Name>
<Name>A002_C001_BLABLA.MOV</Name>
然后在整个外部驱动器中搜索该文件A013_C025_08264E.MOV, etc,复制他的相关路径并在XML中将元素<path>...</path>替换为<path>ACTUAL PATH FOR A013_C025_08264E.MOV</path>
超过 300 个文件。
XML sn-p:
<Media ObjectUID="01718186-c2f3-4c48-9d1a-6305067a5184" ClassID="7a5c103e-f3ac-4391-b6b4-7cc3d2f9a7ff" Version="19" Index="4294967295">
<IsProxy>false</IsProxy>
<ActualMediaFilePath></ActualMediaFilePath>
<RelativePath>../../../../A010_C004_0829D8.MOV</RelativePath>
<StreamNumber>0</StreamNumber>
<SingleAudioChannel>-1</SingleAudioChannel>
<IgnoreAudio>false</IgnoreAudio>
<IgnoreVideo>false</IgnoreVideo>
<ConformedAudioRate>9223372036854775807</ConformedAudioRate>
<CaptureStatus>0</CaptureStatus>
<OfflineReason>5</OfflineReason>
<Infinite>false</Infinite>
<LogComment></LogComment>
<AlternateTapeName></AlternateTapeName>
<AlternateStart>0</AlternateStart>
<FileKey></FileKey>
<Title>A010_C004_0829D8.MOV</Title>
<ImplementationID>00000000-0000-0000-0000-000000000000</ImplementationID>
<Node Version="1">
</Node>
<VideoStream ObjectRef="1884"/>
<TapeName>001</TapeName>
<FilePath>A010_C004_0829D8.MOV</FilePath>
<Start>15742672473528000</Start>
</Media>
我们需要在标签<title>中获取名称的地方搜索文件并将他的路径放在<file path>中。
【问题讨论】:
-
是的,有可能,你能发布你的 XML 的 sn-p 吗?
-
要操作 XML,您可以查看 lxml 库或 BeautifulSoup。后者可能对用户更友好。要查看您的目录,您可以查看
os.walk。 -
解释更多...您是否有一个带有文件名和路径的 XML 文件,或者您有多个 xml 文件,或者...目前尚不清楚,但很可能我们可以帮助您如果您提供更多信息!
-
我看过您的编辑,但仍然没有太大帮助。
Name和path标签之间有什么关系?是一个在另一个内部,还是它们都在另一个具有已知名称的父标签内?是否存在一对一或一对多或多对一的关系? -
如您所见,我认为替换
就足够了,替换 和 是没有必要的
标签: python xml file replace reconnect