python用r,f 遍历文件的绝对路径

记录一下在处理数据中用到的方法,欢迎指正,如果对你有帮助那就再好不过啦!

某路径下有很多文件夹,这些文件夹内有名字格式类似的待处理文件:

例如RHU文件夹下的文件如下图,仅日期存在变化:

现在想用for循环分别读它们的路径,拿其中一个文件路径举例:

D:\BaiduNetdiskDownload\2010-2019全国地面气候日值数据\中国地面气候资料日值数据集(V3.0)-201001201912\2015-2019weather\RHU\SURF_CLI_CHN_MUL_DAY-RHU-13003-201501.TXT

其它文件仅有标红部分是和其它文件不一样的,所以我创建了一个字典来读取。

重点是我既想用 f 来进行遍历,又想取一个绝对路径,否则这个循环就不能正确读取文件路径了,所以尝试之后发现 rf 是可以合在一起用的!!!同时满足这两个要求。

如果文件非常多,也可以用os内的功能读取文件名进行遍历,因为我要有对应的输出文件所以采取了这一方式。

import pandas as pd
import os
import xlsxwriter

meteor_key = {'PRS':'SURF_CLI_CHN_MUL_DAY-PRS-10004-', 'TEM':'SURF_CLI_CHN_MUL_DAY-TEM-12001-',
              'RHU':'SURF_CLI_CHN_MUL_DAY-RHU-13003-', 'PRE':'SURF_CLI_CHN_MUL_DAY-PRE-13011-',
              'EVP':'SURF_CLI_CHN_MUL_DAY-EVP-13240-', 'WIN':'SURF_CLI_CHN_MUL_DAY-WIN-11002-',
              'SSD':'SURF_CLI_CHN_MUL_DAY-SSD-14032-'}

for key,value in meteor_key.items():
    path = f'D://BaiduNetdiskDownload//2010-2019全国地面气候日值数据//中国地面气候资料日值数据集(V3.0)-201001201912//2015-2019weather//{key}//'
    workbook = xlsxwriter.Workbook(rf'D:\BaiduNetdiskDownload\2010-2019全国地面气候日值数据\中国地面气候资料日值数据集(V3.0)-201001201912\2015-2019weather\{key}_2015-2019_stations.xlsx')  # 新建excel表

    for year in range(2015, 2020):
        worksheet = workbook.add_worksheet('%04.0f' % year)
        for month in range(1, 13):
            fn = value + '%04.0f' % year + '%02.0f' % month + '.TXT'
            if (os.path.exists(path + fn)):  # 判断一下是否存在该路径,成功的话即可进行下一步文件读取处理!
                data = pd.read_csv(path + fn, header=None, sep='\s+')
                stations = list(set(data.iloc[:, 0]))  # 将气象站的站号取出,并去除重复值
                headings = [str('%02.0f' % month) + '月']
                worksheet.write_row(0,month-1, headings)
                worksheet.write_column(1,month-1, stations)
            else:
                print('路径有错误或不存在!')

    workbook.close()

print('end')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunny_xx.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值