Python:读取xml并搜索丢失的文件
我希望通过Python重新连接丢失的文件!是否可以读取XML文件并获取标记之间的文件名示例:Python:读取xml并搜索丢失的文件,python,xml,file,replace,reconnect,Python,Xml,File,Replace,Reconnect,我希望通过Python重新连接丢失的文件!是否可以读取XML文件并获取标记之间的文件名示例: <Name>A013_C025_08264E.MOV</Name> <Name>A002_C001_BLABLA.MOV</Name> 我们需要在标记中获取名称,然后搜索文件并将其路径放置在中。我会这样做来读取xml文件: from BeautifulSoup import BeautifulStoneSoup xml_file = open("my_
<Name>A013_C025_08264E.MOV</Name>
<Name>A002_C001_BLABLA.MOV</Name>
我们需要在标记中获取名称,然后搜索文件并将其路径放置在中。我会这样做来读取xml文件:
from BeautifulSoup import BeautifulStoneSoup
xml_file = open("my_xml_file.xml", "r")
soup = BeautifulStoneSoup(xml_file.read())
print soup.prettify()
然后,您只需遍历xml即可找到所需内容
然后可以使用os.walk在文件系统中查找文件。我将使用xml.etree.ElementTree解析xml文件
import xml.etree.ElementTree as ET
import os
import fnmatch
tree = ET.parse('fileName.xml')
root = tree.getroot()
#find all media elements
for media in root.findall('Media'):
movName = media.find('Title').text
#find the path to the file
for root, dirnames, filenames in os.walk('src'):
for filename in fnmatch.filter(filenames, movName):
#set the path in the XML file
media.find('FilePath').text = os.path.join(root, movName)
#remove the relative path element
media.remove(RelativePath)
tree.write('fileName.xml)
我还没有测试过,可能有错误
您应该阅读文档以了解更多信息:
是的,这是可能的,您可以发布一段XML吗?要操作XML,您可以查看lxml库或BeautifulSoup。后者可能更便于用户使用。要查看目录,您可以查看os.walk.Explain more。。。您是否有一个包含文件名和路径的XML文件,或者您有多个XML文件,或者。。。不清楚,但如果您提供更多信息,我们很可能会帮助您!我看过你的编辑,但仍然没有多大帮助。名称和路径标记之间的关系是什么?是一个在另一个内,还是它们都在另一个具有已知名称的父标记内?是否存在一对一或一对多或多对一的关系?正如你所看到的,我相信这足以取代,取代,而不是必要的
import xml.etree.ElementTree as ET
import os
import fnmatch
tree = ET.parse('fileName.xml')
root = tree.getroot()
#find all media elements
for media in root.findall('Media'):
movName = media.find('Title').text
#find the path to the file
for root, dirnames, filenames in os.walk('src'):
for filename in fnmatch.filter(filenames, movName):
#set the path in the XML file
media.find('FilePath').text = os.path.join(root, movName)
#remove the relative path element
media.remove(RelativePath)
tree.write('fileName.xml)