如何使用python从文本文件中提取特定信息?

时间:2014-09-19 05:20:14

标签: python

我正在学习python中的文件概念。在这里,我想从文本文件中提取一些文本(以粗体格式)。但我不知道该怎么做。

这是我的示例文本文件:

{“词汇表”:{“title”:“示例词汇表”,“GlossDiv”:{“title”:“S”,“GlossList”:{“GlossEntry”:{“ID “:”SGML“,”SortAs“:”SGML“,”GlossTerm“:”标准通用标记语言“, “缩写”:“SGML”,“Abbrev”:“ISO 8879:1986”,“GlossDef”:{“para”:“元标记语言,用于创建DocBook等标记语言。”,“GlossSeeAlso”:[“GML”,“XML”]}, “GlossSee”:“markup”}}}}}

{“词汇表”:{“title”:“示例词汇表”,“GlossDiv”:{“title”:“a”,“GlossList”:{“GlossEntry”:{“ID “:”SGML“,”SortAs“:”SGML“,”GlossTerm“:”标准通用标记语言“, “缩写”:“SGML”,“Abbrev”:“ISO 8879:1986”,“GlossDef”:{“para”:“元标记语言,用于创建DocBook等标记语言。”,“GlossSeeAlso”:[“GML”,“XML”]}, “GlossSee”:“markup”}}}}}

{“词汇表”:{“title”:“示例词汇表”,“GlossDiv”:{“title”:“b”,“GlossList”:{“GlossEntry”:{“ID “:”SGML“,”SortAs“:”SGML“,”GlossTerm“:”标准通用标记语言“, “缩写”:“SGML”,“Abbrev”:“ISO 8879:1986”,“GlossDef”:{“para”:“元标记语言,用于创建DocBook等标记语言。”,“GlossSeeAlso”:[“GML”,“XML”]}, “GlossSee”:“markup”}}}}}

{“词汇表”:{“title”:“示例词汇表”,“GlossDiv”:{“title”:“c”,“GlossList”:{“GlossEntry”:{“ID “:”SGML“,”SortAs“:”SGML“,”GlossTerm“:”标准通用标记语言“, “缩写”:“SGML”,“Abbrev”:“ISO 8879:1986”,“GlossDef”:{“para”:“元标记语言,用于创建DocBook等标记语言。”,“GlossSeeAlso”:[“GML”,“XML”]}, “GlossSee”:“markup”}}}}}

{“词汇表”:{“title”:“示例词汇表”,“GlossDiv”:{“title”:“f”,“GlossList”:{“GlossEntry”:{“ID “:”SGML“,”SortAs“:”SGML“,”GlossTerm“:”标准通用标记语言“, “缩写”:“SGML”,“Abbrev”:“ISO 8879:1986”,“GlossDef”:{“para”:“元标记语言,用于创建DocBook等标记语言。”,“GlossSeeAlso”:[“GML”,“XML”]}, “GlossSee”:“markup”}}}}

我需要这样的输出:

"title": "S" ; "para": "A meta-markup language, used to create markup languages such as DocBook."
"title": "a" ; "para": "A meta-markup language, used to create markup languages such as DocBook."
....

任何人都可以帮我在python中执行此操作吗?

1 个答案:

答案 0 :(得分:2)

由于没有尝试显示任何代码,我只会给出一些一般性的建议。文件中的每一行实际上都是一个称为dictionary的Python数据结构。您可以阅读每一行并使用Python的json库来解析它并将其存储为字典(dict)。有关Python词典的更多信息,请访问here

  

<强> 5.5。字典   Python内置的另一个有用的数据类型是字典(请参阅映射类型 - 字典)。词典有时在其他语言中被称为“关联记忆”或“关联阵列”。与由一系列数字索引的序列不同,字典由键索引,键可以是任何不可变类型;字符串和数字总是键。如果元组仅包含字符串,数字或元组,则它们可用作键;如果元组直接或间接包含任何可变对象,则不能将其用作键。您不能将列表用作键,因为可以使用索引赋值,切片赋值或append()和extend()等方法对列表进行修改。

     

最好将字典视为一组无序的键:值对,并要求键是唯一的(在一个字典中)。一对大括号创建一个空字典:{}。在括号内放置以逗号分隔的键:值对列表,将初始键:值对添加到字典中;这也是字典在输出上的写法。

     

字典上的主要操作是使用某个键存储值并提取给定键的值。也可以删除带有del的键:值对。如果使用已在使用的密钥进行存储,则会忘记与该密钥关联的旧值。使用不存在的密钥提取值是错误的。

可以在此StackOverflow question的接受答案中找到从文件中读取多个JSON对象的一些想法。特别是最后一个示例代码段。

读入字典后,您可以对数据执行字典查找。如果我将字典读入名为dictvar的变量中,那么我可以通过执行以下操作来打印glossary title

print (dictvar['glossary']['title'])

如果我正在阅读上面文件中的第一个例子,那就打印出来了:

example glossary

您实际上可以使用最少量的代码生成一个能够满足您需求的程序