如何在n个变量中读取n个文件,然后将这些变量添加到列表中?

时间:2018-09-12 10:52:28

标签: python

这是我的代码:

file_input1 = open('Amazon_Indi_Seller.py', 'r')
f1 = file_input1.read().lower()

file_input2 = open('Amazon_Prices.py', 'r')
f2 = file_input2.read().lower()

documents = [f1, f2]
import nltk, string, numpy

stemmer = nltk.stem.porter.PorterStemmer()

lemmer = nltk.stem.WordNetLemmatizer()
def LemTokens(tokens):
    return [lemmer.lemmatize(token) for token in tokens]
remove_punct_dict = dict((ord(punct), None) for punct in string.punctuation)
def LemNormalize(text):
    return 
LemTokens(nltk.word_tokenize(text.lower().translate(remove_punct_dict)))

from sklearn.feature_extraction.text import CountVectorizer
LemVectorizer = CountVectorizer(tokenizer=LemNormalize, 
stop_words='english')
LemVectorizer.fit_transform(documents)

我想读取目录中的所有文件,而不是读取2个文件。并逐一阅读它们,以便以后可以将这些变量添加到名为文档的列表中。

4 个答案:

答案 0 :(得分:0)

您可以收集列表中的所有内容,例如: lst = []

 for file in os.listdir():
     file_input = open(file,"r")
     lst.append(file_input.read())

一个额外的建议-通常,明智的做法是将文件的内容存储为文件行的集合,例如,使用file_input.readlines()返回行列表。

答案 1 :(得分:0)

创建所有文件名的列表,然后遍历文件名列表并将其内容添加到字典中。

from collections import defaultdict    #imported default dictionary

result = defaultdict()    #created empty default dictionary
filenames = ['name1.py', 'name2.py', 'name3.py']   #added filenames to a list

for name in filenames:   #iterate over filename list
    with open(name, 'r') as stream:   #open each file
        data = stream.readlines()     #read contents lines by line (readlines return list of lines)
        result[name] = data    # set name as key and content as value in dictionary

print(result)   

通过这种方式,您将拥有一个字典,其中键是文件名,值是内容

答案 2 :(得分:0)

您可以使用下面提到的代码,

  import os

    def read_files(file):
        file_input1 = open(file, 'r')
        f1 = file_input1.read()
        return f1

    files = ['sample.py', 'Amazon_Indi_Seller.py']
    data = list()
    for file in files:
        data.append(read_files(file))
    print(data)

上面的代码将用于读取列表中提到的文件

import os

def read_files(file):
    file_input1 = open(file, 'r')
    f1 = file_input1.read()
    return f1

src = r'DIRECTORY PATH'
data = list()
for file in os.listdir(src):
    data.append(read_files(file))

print(data)

上面的代码将从提到的目录中读取所有文件

答案 3 :(得分:0)

如果该目录可能包含您要阅读的其他目录,请使用os.walk

以下是官方文档中的示例代码:

import os
from os.path import join, getsize
for root, dirs, files in os.walk('python/Lib/email'):
    print root, "consumes",
    print sum(getsize(join(root, name)) for name in files),
    print "bytes in", len(files), "non-directory files"
    if 'CVS' in dirs:
        dirs.remove('CVS')  # don't visit CVS directories