python - 用日期重命名多个文件名
问题描述
我想请你帮忙用日期重命名多个文件。我有 netcdf 文件“wrfoutput_d01_2016-08-01_00:00:00”直到“wrfoutput_d01_2016-08-31_00:00:00”,因为输出来自 Linux,Windows 不会读取这些文件。我想将文件名更改为“wrfoutput_d01_2016-08-01_00”,直到“wrfoutput_d01_2016-08-31_00”。我如何使用 python 做到这一点?
编辑:
包含文件夹有两组文件。一个用于域 1,用 d01,wrfoutput_d01_2016-08-31_00 :00:00 表示,另一组用 d02,wrfoutput_d02_2016-08-31_00 :00:00 表示。d01 的文件总数为 744,因为时间步长输出与 d02 每小时相同。
我想每小时重命名每一天。比如说,wrfoutput_d01_2016-08-01_00:00:00, wrfoutput_d01_2016-08-01_01:00:00,... 到 wrfoutput_d01_2016-08-01_00, wrfoutput_d01_2016-08-01_01,...
我看到了一个允许我访问特定文件的代码,例如 d01 或 d02。
import os
from netCDF4 import Dataset
from wrf import getvar
filedir = "/home/gil/WRF/Output/August/"
wrfin = [Dataset(f) for f in os.listdir(filedir)
if f.startswith("wrfout_d02_")]
在这段代码之后,我被卡住了。
解决方案
首先获取文件名,给出文件夹路径 ( '/home/user/myfolder...'
),然后重命名它们。
import os
import re
filenames = os.listdir(folder_path)
for fn in filenames:
os.rename(fn, re.sub(':','-',fn))
推荐阅读
- pandas - 无法在pycharm中绘图
- c# - 单元测试场景中的游戏对象
- python - 熊猫合并不考虑常见项目
- azure - 使用预定义的连接器将 LogicApp 连接到 D365 CRM
- javascript - How to get the inner object array in javascript?
- outlook - 如何在 vsto Outlook 加载项中实现默认快捷方式?
- android - 如何在 Android Oreo 及更高版本的通知托盘中显示带有图片的 Android 通知?
- php - jQuery Datepicker 在每个月的前 10 天不显示事件
- hibernate - 在 Spring Boot 中通过 JPA/Hibernate 创建 DB 触发器
- javascript - 用于数组输入的jQuery自动完成器