我想寻求您的帮助,以日期重命名多个文件。我有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_")]
在此代码之后,我被卡住了。
答案 0 :(得分:1)
首先获取文件名,提供文件夹路径('/home/user/myfolder...'
),然后重命名。
import os
import re
filenames = os.listdir(folder_path)
for fn in filenames:
os.rename(fn, re.sub(':','-',fn))
答案 1 :(得分:0)
另一个答案将冒号转换为连字符。如果您希望从文件名中截断时间,则可以使用它。
这假定文件与python脚本位于同一目录中。如果不是,请更改“。”到“ path / to / dir /”。重命名文件时,它还会仅查看名称格式为“ wrfoutput ...”的文件。
from os import listdir, rename
from os.path import isfile, join
only_files = [f for f in listdir('.') if isfile(join('.', f))]
for f in only_files:
# Get the relevant files
if 'wrfoutput' in f:
# Remove _HH:MM:SS from end of file name
rename(f, f[:-9])
答案 2 :(得分:0)
打开终端
cd进入目录(theta
)
启动python(cd /home/myfolder
)
现在,一个简单的重命名。
python