文件夹中有一堆.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']
谢谢!
答案 0 :(得分:1)
read_files
已经完成了几乎所有您想要的事情。您可以直接调用它,并使用list
将其从生成器转换为常规列表:
results = list(read_files(s))