简体   繁体   English

在主文件夹中的多个文件夹上迭代脚本

[英]Iterate a script over multiple folders in master folder

I have written a script that extracts columns from multiple csv files (staying in a folder named SIM1) and saves them in a txt file.我编写了一个脚本,从多个 csv 文件(位于名为 SIM1 的文件夹中)中提取列并将它们保存在 txt 文件中。 Now, I need to iterate this script over multiple folders (SIM2, SIM3, SIM4,...).现在,我需要在多个文件夹(SIM2、SIM3、SIM4...)上迭代这个脚本。 All of these SIM folders are in one master folder.所有这些 SIM 文件夹都在一个主文件夹中。 I will really appreciate if I can get help on iteration?如果我能在迭代方面获得帮助,我会非常感激? (I am using Python 3.7) (我正在使用 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='')

Try this尝试这个

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='')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM