用d重命名多个文件名

2024-06-18 14:15:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想请您帮助重命名多个文件的日期。我有netcdf文件“wrfoutput\u d01\u 2016-08-01\u 00:00:00”到“wrfoutput\u d01\u 2016-08-31\u 00:00:00”,windows不读取这些文件,因为输出来自Linux。我想将文件名更改为“wrfoutput\u d01\u 2016-08-01\u 00”,直到“wrfoutput\u d01\u 2016-08-31\u 00”。如何使用python实现这一点

编辑:

包含文件夹有两组文件。一个用于域1,由d01表示,wrfoutput\uSTRONG>d01\U 2016-08-31\U 00:00:00,另一个由d02表示,wrfoutput\uSTRONG>d02\U 2016-08-31\U 00:00:00。d01的总文件数为744,因为时间步长输出与d02每小时相同

我想每小时为每一天重新命名一次。比如说,wrfoutput_d01_2016-08-01_00:00:00,wrfoutput_d01_2016-08-01_01:00:00,。。。至wrfoutput\ U d01\ U 2016-08-01\ U 00,wrfoutput\ U d01\ U 2016-08-01\ U 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_")]

在这段代码之后我被卡住了


Tags: 文件代码fromimportoswindowsnetcdfdataset
3条回答

打开终端

将cd放入目录(cd /home/myfolder

启动python(python

现在,一个简单的重命名

import os
AllFiles=os.listdir('.')
for eachfile in AllFiles:
    os.rename(eachfile,eachfile.replace(':','_'))

首先获取文件名,给出文件夹路径('/home/user/myfolder...'),然后重命名它们

import os
import re
filenames = os.listdir(folder_path)

for fn in filenames:
    os.rename(fn, re.sub(':','-',fn))

另一个答案将冒号转换为连字符。如果您想从文件名中截取时间,可以使用这个

这假设文件与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])

相关问题 更多 >