【发布时间】:2021-05-26 13:13:32
【问题描述】:
例如,我有 28 个文件:-
文件 -> day01.nc 内部文件:-
| lat | lon | date |
| --- | --- | -------- |
| 7 | 68 | 2021-02-01|
| 7 | 69 | 2021-02-01|
文件 -> day02.nc 内部文件:-
| lat | lon | date |
| --- | --- | -------- |
| 7 | 68 | 2021-02-02|
| 7 | 69 | 2021-02-02|
文件 -> day28.nc 内部文件:-
| lat | lon | date |
| --- | --- | -------- |
| 7 | 68 | 2021-02-28|
| 7 | 69 | 2021-02-28|
我想使用 python 脚本根据日期格式转换他们的名字,如@987654329@、temp_ind20210202.nc、...、temp_ind20210328.nc。
注意:- 在day01.nc 中,该文件内的日期格式类似于2021-02-01 等等。
我正在尝试:-
DATA_DIR = 'data'
today = datetime.datetime.now()
offset_1day = datetime.timedelta(days=1)
re_number = re.compile('day(\d{,2})\.nc')
for fname in glob.glob(DATA_DIR + "/*.nc"):
number_string = re_number.search(fname)
if not number_string:
continue
number_of_days = int(number_string.group(1))
str_timestamp = (today + (number_of_days - 1) * offset_1day).strftime("%Y%m%d")
new_fname = f"{DATA_DIR}/temp_ind{_str_timestamp}.nc"
print(f'{fname} -> {new_fname}')
os.rename(fname, new_fname)
【问题讨论】:
-
你是如何决定
month的? -
实际上这是当前月份的数据,从日期 17-02-2021 到 18-03-2021 结束。
-
你也可以编辑你的other question,它可以重新打开。无论如何,关于你现在的问题,所以你基本上想读取 nc 文件,从“日期”中提取第一个条目,关闭文件并根据你提取的内容重命名它?
-
是的,这就是我想要使用 python 脚本。我无法从文件中获取日期并将其设置为文件名。请帮忙。
-
你看过netCDF4吗?在 SO 上还有一些与在 Python 中读取 nc 文件相关的问题。对于您的具体情况,如果没有示例 .nc 文件(可能有组,日期可能采用不同的格式等),很难给出一个好的答案。
标签: python datetime netcdf weatherdata