循环浏览文件列表

时间:2019-03-07 02:32:02

标签: python pandas

我正在开发数据列检查,但是我很难确定如何正确遍历文件列表。我有一个包含csv文件列表的文件夹。我需要检查每个文件是否都维护特定的结构。我不担心检查每个文件的结构,我更担心如何从dir中正确提取每个文件,对其进行数据帧处理,然后再移至下一个文件。任何帮助将非常感激。

def files(path):
    files = os.listdir(path)
    len_files = len(files)
    cnt = 0

    while cnt < len_files:
        print(files)
        for file in os.listdir(path):
            if os.path.isfile(os.path.join(path, file)):
                with open(path + file, 'r') as f:
                    return data_validate(f)


def data_validate(file):
    # Validation check code will eventually go here...

    print(pd.read_csv(file))


def run():
   files("folder/subfolder/")

1 个答案:

答案 0 :(得分:0)

您使用哪个版本的python?

我使用Pathlib和python3.6 +对熊猫进行了大量文件处理。我发现Pathlib易于使用,尽管您仍然需要投入os来实现它们尚未实现的几个功能。另外一个好处是,可以将Path对象直接传递到os函数中,而无需进行修改-所以我喜欢灵活性。

这是我用来递归遍历任意目录结构的函数,我对该目录结构进行了修改,使其看起来更像上面您要实现的目标,返回了DataFrames列表。

如果您的目录总是平坦的,则可以进一步简化它。

def files(directory):
    top_dir = Path(directory)
    validated_files = list()
    for item in top_dir.iterdir():
        if item.is_file():
            validated_files.append(data_validate(item))
        elif item.is_dir():
            validated_files.append(files(item))
    return validated_files