我想将目录中的许多 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
我认为问题在于我正在尝试处理尚未创建的列表索引。 我确定一定有一种简单的方法可以做到这一点,尽管我找不到。
我很乐意为您提供帮助!
答案 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