如何将文件夹中的多个文本文件加载到python列表变量中

Min*_*inu 3 python

我有一个充满文本文档的文件夹,其中的文本需要加载到单个列表变量中。

列表的每个索引,都应该是每个文档的全文。

到目前为止,我有这段代码,但效果不佳。

dir = os.path.join(current_working_directory, 'FolderName')
file_list = glob.glob(dir + '/*.txt')
corpus = [] #-->my list variable
for file_path in file_list:
    text_file = open(file_path, 'r')
    corpus.append(text_file.readlines()) 
    text_file.close()
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

编辑:read_csv用文本阅读功能 ( readlines())替换了 csv阅读功能 ( )。

Mar*_*ans 8

您只需要将read()每个文件添加到您的corpus列表中,如下所示:

import glob
import os

file_list = glob.glob(os.path.join(os.getcwd(), "FolderName", "*.txt"))

corpus = []

for file_path in file_list:
    with open(file_path) as f_input:
        corpus.append(f_input.read())

print(corpus)
Run Code Online (Sandbox Code Playgroud)

每个列表条目将是每个文本文件的全部内容。请注意, usingreadlines()将为您提供每个文件的行列表,而不是原始文本。

使用列表理解

import glob
import os

file_list = glob.glob(os.path.join(os.getcwd(), "FolderName", "*.txt"))

corpus = []

for file_path in file_list:
    with open(file_path) as f_input:
        corpus.append(f_input.read())

print(corpus)
Run Code Online (Sandbox Code Playgroud)

但是这种方法最终可能会占用更多资源,因为没有with部分可以自动关闭每个文件。