用于将txt文件读取为一个字符串以记录逻辑的转换功能

时间:2018-07-09 10:42:53

标签: python scikit-learn nltk python-os countvectorizer

文件夹中有一堆.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']

谢谢!

1 个答案:

答案 0 :(得分:1)

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

results = list(read_files(s))