这是我的代码:
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个文件。并逐一阅读它们,以便以后可以将这些变量添加到名为文档的列表中。
答案 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