将文本文件内容添加到列表列表

时间:2021-07-02 13:43:55

标签: python

我想将目录中的许多 txt 文件的内容“读取”到列表中。 问题是我希望列表中的每个对象也是一个列表。

我希望能够通过索引访问每个“文件”(或文件的内容) - 以便以后使用 NLP 模型对其进行训练。此外,这就是我使用 line.strip() 的原因,因为我需要将每个内容都拆分为“行”。

这是我试过的代码,但是,我得到了错误:

<块引用>

IndexError: 列表索引超出范围

os.chdir(r'C:\Users\User1\Article\BBC\bbc\entertainment')
ent_txts = glob.glob('*.txt')

ent_docs = []
d=0

for i in ent_txts:
    
    with open(i, 'r') as f:
        
         for line in f:
                ent_docs[d].append(line.strip())
    d+=1

我认为问题在于我正在尝试处理尚未创建的列表索引。 我确定一定有一种简单的方法可以做到这一点,尽管我找不到。

我很乐意为您提供帮助!

2 个答案:

答案 0 :(得分:3)

错误是因为您没有要插入的任何内部列表。我会像这样修复它:

for i in ent_txts:
    with open(i, 'r') as f:
        file_lines = [line.strip() for line in f]
    ent_docs.append(file_lines)

答案 1 :(得分:0)

from collections import defaultdict
os.chdir(r'C:\Users\User1\Article\BBC\bbc\entertainment')
ent_txts = glob.glob('*.txt')

ent_docs = defaultdict(list)
d=0

for i in ent_txts:
    
    with open(i, 'r') as f:
        
         for line in f:
                ent_docs[d].append(line.strip())
    d+=1