首页 文章

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

提问于
浏览
-3

我正在学习python中的文件概念 . 在这里,我想从文本文件中提取一些文本(在 bold format 中) . 但我不知道该怎么做 .

这是我的示例文本文件:

{"glossary":{"title":"example glossary","GlossDiv":{ "title": "S" ,"GlossList":{"GlossEntry":{"ID":"SGML","SortAs":"SGML","GlossTerm":"Standard Generalized Markup Language","Acronym":"SGML","Abbrev":"ISO 8879:1986","GlossDef":{ "para": "A meta-markup language, used to create markup languages such as DocBook." ,"GlossSeeAlso":["GML","XML" ]},"GlossSee":"markup"}}}}}

{"glossary":{"title":"example glossary","GlossDiv":{ "title": "a" ,"GlossList":{"GlossEntry":{"ID":"SGML","SortAs":"SGML","GlossTerm":"Standard Generalized Markup Language","Acronym":"SGML","Abbrev":"ISO 8879:1986","GlossDef":{ "para": "A meta-markup language, used to create markup languages such as DocBook." ,"GlossSeeAlso":["GML","XML" ]},"GlossSee":"markup"}}}}}

{"glossary":{"title":"example glossary","GlossDiv":{ "title": "b" ,"GlossList":{"GlossEntry":{"ID":"SGML","SortAs":"SGML","GlossTerm":"Standard Generalized Markup Language","Acronym":"SGML","Abbrev":"ISO 8879:1986","GlossDef":{ "para": "A meta-markup language, used to create markup languages such as DocBook." ,"GlossSeeAlso":["GML","XML" ]},"GlossSee":"markup"}}}}}

{"glossary":{"title":"example glossary","GlossDiv":{ "title": "c" ,"GlossList":{"GlossEntry":{"ID":"SGML","SortAs":"SGML","GlossTerm":"Standard Generalized Markup Language","Acronym":"SGML","Abbrev":"ISO 8879:1986","GlossDef":{ "para": "A meta-markup language, used to create markup languages such as DocBook." ,"GlossSeeAlso":["GML","XML" ]},"GlossSee":"markup"}}}}}

{"glossary":{"title":"example glossary","GlossDiv":{ "title": "f" ,"GlossList":{"GlossEntry":{"ID":"SGML","SortAs":"SGML","GlossTerm":"Standard Generalized Markup Language","Acronym":"SGML","Abbrev":"ISO 8879:1986","GlossDef":{ "para": "A meta-markup language, used to create markup languages such as 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 回答

  • 2

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

    5.5 . 字典Python中内置的另一种有用的数据类型是字典(请参阅映射类型 - 字典) . 词典有时在其他语言中被称为“关联记忆”或“关联阵列” . 与由一系列数字索引的序列不同,字典由键索引,键可以是任何不可变类型;字符串和数字总是键 . 如果元组仅包含字符串,数字或元组,则它们可用作键;如果元组直接或间接包含任何可变对象,则不能将其用作键 . 您不能将列表用作键,因为可以使用索引赋值,切片赋值或append()和extend()等方法对列表进行修改 . 最好将字典视为一组无序的键:值对,并要求键是唯一的(在一个字典中) . 一对大括号创建一个空字典:{} . 在括号内放置以逗号分隔的键:值对列表,将初始键:值对添加到字典中;这也是字典在输出上的写法 . 字典上的主要操作是使用某个键存储值并提取给定键的值 . 也可以删除带有del的键:值对 . 如果使用已在使用的密钥进行存储,则会忘记与该密钥关联的旧值 . 使用不存在的密钥提取值是错误的 .

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

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

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

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

    example glossary
    

    实际上,您可以使用最少量的代码生成一个可以执行所需操作的程序

相关问题