我是新手,对以下否则简单的“循环”问题感到困惑.我有一个本地目录,带有x个文件(约500个.txt文件).我想使用RAKE for Python从每个唯一文件中提取相应的关键字.我已经查看了RAKE的文档;但是,教程中建议的代码将获取单个文档的关键字.有人可以向我解释一下如何循环存储在本地目录中的X个文件.这是本教程中的代码,对于单个文档而言,它的含义非常好.
$git clone https://github.com/zelandiya/RAKE-tutorial
import rake
import operator
rake_object = rake.Rake("SmartStoplist.txt", 5, 3, 4)
sample_file = open("data/docs/fao_test/w2167e.txt", 'r')
text = sample_file.read()
keywords = rake_object.run(text)
print "Keywords:", keywords
解决方法:
创建要处理的文件名列表:
filenames = [
'data/docs/fao_test/w2167e.txt',
'some/other/folder/filename.txt',
etc...
]
如果不想对所有名称进行硬编码,则可以使用glob模块通过通配符收集文件名.
创建用于存储结果的字典:
results = {}
遍历每个文件名,读取内容并将Rake结果存储在字典中,并以文件名为键:
for filename in filenames:
with open(filename, 'r') as fp:
results[filename] = rake_object.run(fp.read())