首页 > 解决方案 > 为什么我的循环在一次迭代后停止?

问题描述

我正在努力了解为什么我的循环在一次迭代后停止。

我的代码:

import os

def open_data(fpath):
    counter=0
    for i in os.listdir(fpath):
        if os.path.isfile(os.path.join(fpath,i)):
            #print counter
            f=open(os.path.join(fpath,i),"r")
            #counter=counter+1
    return counter,f.readlines()
            #f.close()
x=open_data("C:/Users/manchester/.ipynb_checkpoints/txt_sentoken/practice_")

基本上,我试图遍历目录中包含电影评论的所有文件。我首先打算使用一个函数从目录中读取所有文件,然后我需要说 70% 的评论用于训练 10% 用于测试 10% 用于验证 10% 用于超参数样本。但是我只是无法克服尝试使用函数读取所有文件的第一个障碍。

我试过使用 list 和 append 但这也不起作用。

标签: pythonpython-2.7fileloopsdirectory

解决方案


那么这样代码只会返回目录的最后一个文件。

您没有对打开的文件执行任何操作,然后返回最后一个文件。

我想您应该将其附加到f.readlines列表中,然后在函数末尾返回列表。

计数器应该可以工作,返回目录中的文件数


推荐阅读