首页 > 解决方案 > 遍历多个目录的文件以提取数据

问题描述

我有一系列嵌套的文件,如附图所示。对于每个“内部”文件夹(例如 001717528 文件夹),我想从每个 FITS 文件中提取一行数据并创建一个包含所有行的 CSV 文件,并以“内部”的名称命名该 CSV 文件" 文件夹(例如 001717528.csv 包含来自 18 个拟合文件的数据)。数据提取部分很容易,但我在编写迭代代码时遇到了麻烦。

我真的不知道如何遍历外部文件夹(例如 0017 和内部文件夹),并根据需要命名 csv 文件。

我的文件的屏幕截图

我的代码如下所示:

for subdir, dirs, files in os.walk('../kepler'):
    for file in files:
        filepath = subdir + os.sep + file
        if filepath.endswith(".fits"):
            extract data
        write to csv file

显然这将遍历开普勒文件夹中的所有文件,因此它不起作用。

标签: pythonloops

解决方案


试试这个代码,它应该打印所有“.fits”文件的文件路径:

# !/usr/bin/python

import os
base_dir = './test'

for root, dirs, files in os.walk(base_dir, topdown=False):
  for name in files:
    if name.endswith(".fits"):
      file_path = os.path.join(root, name) #path of files
      print(file_path)
    # do your treatment on file_path

您所要做的就是添加您的特定治疗方法。


推荐阅读