遍历主文件夹中的多个文件夹的脚本

问题描述 投票:0回答:1

我编写了一个脚本,该脚本从多个csv文件中提取列(保留在名为SIM1的文件夹中),并将其保存在txt文件中。现在,我需要在多个文件夹(SIM2,SIM3,SIM4等)上迭代此脚本。所有这些SIM文件夹都位于一个主文件夹中。如果能在迭代方面获得帮助,我将不胜感激。 (我正在使用Python 3.7)

    import os
    import pandas as pd
    import numpy as np
    import csv

    os.chdir(r'D:\GRIDS\SIM1')

    ppt = pd.read_csv("ppt.csv")
    et = pd.read_csv("et.csv")
    tmx = pd.read_csv("tmax.csv")
    weather_SIM = pd.read_csv("Weather_SIM1.csv")

    big_frame = pd.concat([weather_SIM, ppt,et,tmx], axis=1)

    np.savetxt('Weather.txt', big_frame, fmt= "%0.0f\t %0.0f\t %0.0f\t %0.1f\t %0.1f\t %0.1f", header='Year\t Month\t Date\t ppt\t et\t tmax', comments='')
python python-3.x pandas numpy csv
1个回答
0
投票

尝试一下

import os
import pandas as pd
import numpy as np
import csv

master_path = '<master dir path>'
subfolders = list(filter(lambda x: os.path.isdir(os.path.join(master_path, x)), os.listdir(master_path)))
for folder in subfolders:

    ppt = pd.read_csv(f"{master_path}/{folder}/ppt.csv")
    et = pd.read_csv(f"{master_path}/{folder}/et.csv")
    tmx = pd.read_csv(f"{master_path}/{folder}/tmax.csv")
    weather_SIM = pd.read_csv(f"{master_path}/{folder}/Weather_SIM1.csv")

    big_frame = pd.concat([weather_SIM, ppt,et,tmx], axis=1)

    np.savetxt(f"{master_path}/{folder}/Weather.txt", big_frame, fmt= "%0.0f\t %0.0f\t %0.0f\t %0.1f\t %0.1f\t %0.1f", header='Year\t Month\t Date\t ppt\t et\t tmax', comments='')
© www.soinside.com 2019 - 2024. All rights reserved.