将读取txt文件的函数转换为一个字符串以记录逻辑

Transforming function for reading txt files into one string to document logics

文件夹中有一堆 .txt 文件。这里有两个函数用于读取这些文件并将它们作为一个字符串保存到一个变量中:

s=(glob.glob("/Users/user/documents/folder/*.txt"))

def read_files(files):
    for filename in files:
        with open(filename, 'r', encoding='latin-1') as file:
            yield file.read()

def read_files_as_string(files, separator='\n'):
    files_content = list(read_files(files=files))
    return separator.join(files_content)

results=read_files_as_string(s)

现在我的想法是使用 sklearn 的 CountVectorizer() 从文本中获取 n-gram。但是 CountVectorizer() 没有接收到字符串作为输入。所以我的问题是 - 我怎样才能使读取文件的功能不将它们存储到一个字符串中而是使用该逻辑存储它们:['text1.txt', 'text2.txt', ..., 'textn.txt']

提前致谢!

read_files 几乎已经完成了您想要的所有工作。您可以直接调用它并使用 list 将其从生成器转换为常规列表:

results = list(read_files(s))