从 Python 中具有相同文件扩展名的多个文件的目录中读取文件
Read File From Directory with Multiple Files of the Same File Extension in Python
我正在尝试使用 Python 解析位于下面显示的文件路径中的特定 XSD 文件 (File1.xsd),但该文件路径中有多个文件相同的文件扩展名(File2.xsd 和 File3.xsd)。 File1.xsd 将用于根据 File1.xsd 模式验证 xml,但我无法仅解析这个 XSD 文件的文件路径(根据 "xml_validator" 功能)。
有谁知道如何 tweak/enhance 仅查找 File1.xsd 的代码,否则将相同的技术应用于具有相同文件扩展名的多个文件的目录 - 输出将是一个布尔值根据 "is_valid" 函数的表达式,非常感谢任何帮助!
import os
import glob
import lxml
from lxml import etree
from lxml.etree import XMLSchema
import xmlschema
path = "C:\Users\mdl518\Desktop\Data\"
def validation():
for filename in glob.glob(os.path.join(path, "*.xml")):
with open(filename,'r') as f:
xml_file=lxml.etree.parse(f)
xml_validator=lxml.etree.XMLSchema(file="<path_to_File1.xsd">))
is_valid=xml_validator.validate(xml_file)
print(is_valid)
return
validation()
将 xml_validator 行替换为:
xml_validator=lxml.etree.XMLSchema(os.path.join(路径,filename.replace(".xml",".xsd")))
我假设你的文件名最后只包含字符串“.xml”,如果你有像"my.xmlfile.xml"这样的文件名,你应该只替换最后一个“.[=20=” ]”实例。
您可以打开您需要的文件作为验证器 (File1.xsd
),解析它,然后遍历 .xml
个文件:
path = "C:\Users\mdl518\Desktop\Data\"
def validation():
with open(f"{path}File1.xsd", 'r') as filxsd:
xml_validator = XMLSchema(file=filxsd)
for fil in glob.glob(f"{path}*.xml"):
with open(fil, 'r') as f:
xml_file = lxml.etree.parse(f)
is_valid = xml_validator.validate(xml_file)
print(is_valid)
我正在尝试使用 Python 解析位于下面显示的文件路径中的特定 XSD 文件 (File1.xsd),但该文件路径中有多个文件相同的文件扩展名(File2.xsd 和 File3.xsd)。 File1.xsd 将用于根据 File1.xsd 模式验证 xml,但我无法仅解析这个 XSD 文件的文件路径(根据 "xml_validator" 功能)。
有谁知道如何 tweak/enhance 仅查找 File1.xsd 的代码,否则将相同的技术应用于具有相同文件扩展名的多个文件的目录 - 输出将是一个布尔值根据 "is_valid" 函数的表达式,非常感谢任何帮助!
import os
import glob
import lxml
from lxml import etree
from lxml.etree import XMLSchema
import xmlschema
path = "C:\Users\mdl518\Desktop\Data\"
def validation():
for filename in glob.glob(os.path.join(path, "*.xml")):
with open(filename,'r') as f:
xml_file=lxml.etree.parse(f)
xml_validator=lxml.etree.XMLSchema(file="<path_to_File1.xsd">))
is_valid=xml_validator.validate(xml_file)
print(is_valid)
return
validation()
将 xml_validator 行替换为: xml_validator=lxml.etree.XMLSchema(os.path.join(路径,filename.replace(".xml",".xsd")))
我假设你的文件名最后只包含字符串“.xml”,如果你有像"my.xmlfile.xml"这样的文件名,你应该只替换最后一个“.[=20=” ]”实例。
您可以打开您需要的文件作为验证器 (File1.xsd
),解析它,然后遍历 .xml
个文件:
path = "C:\Users\mdl518\Desktop\Data\"
def validation():
with open(f"{path}File1.xsd", 'r') as filxsd:
xml_validator = XMLSchema(file=filxsd)
for fil in glob.glob(f"{path}*.xml"):
with open(fil, 'r') as f:
xml_file = lxml.etree.parse(f)
is_valid = xml_validator.validate(xml_file)
print(is_valid)