iter 没有运行。我只想打印出目录/tmp 中每个文件的所有单词。
class CorpusReader:
def __init__(self, dirname):
self.dirname = dirname;
def __iter__(self):
for fname in os.listdir(self.dirname):
for line in open(os.path.join(self.dirname,fname)):
yield line.split()
reader = CorpusReader("/tmp")
最佳答案
你需要的是遍历reader
:
for line in reader:
print line
更新
请记住,并非所有文件都是可读的,您需要防范这种情况:
def __iter__(self):
for fname in os.listdir(self.dirname):
try:
for line in open(os.path.join(self.dirname,fname)):
yield line.split()
except IOError:
pass # or handle this error, most likely due to file not readable
关于python - 如何使用 yield 列出目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40825935/