Skip to main content
 首页 » 编程设计

python如何读取文件并将部分存储到单独的列表中

2024年08月12日31exmyth

我有一个这样的 keywords.txt 文件:

    #section1 
    keyword1 
    keyword2 
    ...... 
    #section2 
    keyword3 
    keyword4 
    ...... 
    #section3 
    keyword5 
    keyword6 
    ...... 

每个版 block 都有很多关键词,还有很多版 block 。我的问题是: 如何将每个部分提取到单独的列表中,如下所示:

    section1=["keyword1","keyword2"] 
    section2=["keyword3","keyword4"] 
    ...... 

这就是我所做的,提取分隔符“#”的行号

separator_numlist=[] 
with open("keywords.txt") as f: 
    for num,line in enumerate(f): 
        if('#') in line: 
            separator_numlist.append() 
""" 
Then read lines between each separator's line number 
""" 

有更好的解决方案吗? 此外,我正在考虑将这些关键字存储在 XML 或 json 中,也许从结构化文件中读取部分比从 txt 文件中读取更有效率。

请您参考如下方法:

你可以使用字典:

dic = dict() 
with open('output', 'r') as f: 
    for i in f.readlines(): 
        if i.startswith('#'): 
            my_key = i.replace("#", "") 
            dic_key = my_key.strip() 
        else: 
            if dic_key in dic: 
                dic[dic_key] += [i.strip()] 
            else: 
                dic[dic_key] = [i.strip()] 

输出:

{'section1': ['keyword1', 'keyword2'], 'section2': ['keyword3', 'keyword4'], 'section3': ['keyword5', 'keyword6']} 

您还可以导入 json 并使用它来转换它:

json_output = json.dumps(dic)