Python-读取文本文件,提取某些文本字符串

时间:2018-11-06 11:28:00

标签: python

我是这里的新手,也是python的新手,所以我正在努力完成一个简单的任务,希望您能为我提供帮助。

我有一个文本文件,其中包含以下格式的数据:

<add key="DateFormat" value="dd-MMM-yyyy"/>
<add key="JsDateFormat" value="DD-MMM-YYYY"/>
<add key="dbDateFormat" value="dd-MMM-yyyy HH:mm:ss:fff"/>

我想要做的是读取并打印包含某些键(例如DateFormat和dbDateFormat)的行并打印它们的值。

我正在使用以下文件读取文件:

f = open("file.config", "r")
file = f.read()
print(file)

它会按预期读取整个文件,但我不知道如何在上述条件下进行搜索和打印。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

首先,您需要检查文档是否为正确的XML文件。如果我使用lxml库阅读,则示例内容将引发解析错误。因此,首先需要对其进行修复。以下节点必须是根节点的子节点。假设根节点为<body>

from lxml import etree

text="""
<body>
<add key="DateFormat" value="dd-MMM-yyyy"/>
<add key="JsDateFormat" value="DD-MMM-YYYY"/>
<add key="dbDateFormat" value="dd-MMM-yyyy HH:mm:ss:fff"/>
</body>
"""

parsed = etree.fromstring(text)

# Now applying xpath to get value

print(parsed.xpath("//add[@key='DateFormat']/@value"))

# Which outputs to ['dd-MMM-yyyy']

您可以使用or xpath表达式从所需的键中获取值。

答案 1 :(得分:0)

感谢您的回答,我使用了一个简单的for / if循环并解析了文本字符串来处理它,反正还是谢谢!!

相关问题