【发布时间】:2015-06-20 20:10:45
【问题描述】:
我正在尝试创建一个函数,该函数打开并读取目录中的每个文件,然后根据某个函数返回具有最高值的文件。在这种情况下,我使用 Textblob 库中的一个名为情绪分析的函数来评估每个文本文件的乐观或消极程度。所以最终的目标是在目录中找到最乐观的.txt文件。
from textblob import TextBlob
import sys
import glob
def optimistic():
path = 'Download/textfiles/*.txt'
files = glob.glob(path)
max_sent = 0
for name in files:
with open(name) as f:
sys.stdout.write(f.read())
if TextBlob(f).sentiment > max_sent:
max_sent = TextBlob(f).sentiment
return name
我有点不确定我是否正确读取目录中的每个文件,以及我是否正确地将每个文件与所有其他文件进行比较以返回最大值。任何帮助将不胜感激。
【问题讨论】:
-
感谢您的回复。例如,每当我尝试打印“文件”时,我都会得到 [ ]。我也不确定我是否应该返回姓名。我可以跳到代码审查,但也感谢任何帮助。
-
如果
files == [],它只是意味着没有文件匹配你的模式。确保您的路径正确。 -
@newrecruit21 - 不知道为什么 koukouviou 推荐 Code Review。您的代码不可能工作,因为它只扫描第一个文件 (
return name) -
我是这么认为的。 Julien Spronck 在下面写的怎么样?
标签: python for-loop text directory