1. 批量添加文件名后缀
#1----批量添加文件名后缀(.nc)。
#指定wrfout文件所在的文件夹
path = "/mnt/wtest1/"
#列出路径path下所有的文件
file_names = os.listdir(path)
#遍历在path路径下所有以wrfout_d01开头的文件,在os.path.basename()返回的一个代表指定路径基本名称的字符串值后加入“.nc”后缀,再重命名文件。
for file in file_names:
if file[0:10] != 'wrfout_d01':
continue
base_name = os.path.basename(file)
new_n = base_name + '.nc'
os.rename(os.path.join(path, file), os.path.join(path, new_n))
#建立空列表,选取path文件路径下所有前缀名为wrfout_d01的nc文件填充该列表
list_names = []
for ncfile in os.listdir(path):
if ncfile[0:10] != 'wrfout_d01': #通过索引选择想要的数据,可以按照需要进行更改
continue
list_names.append(ncfile)
#将模拟结果文件名按照时间进行排序
list_names_sort = np.sort(list_names)
2.批量删除文件名后缀
假如运行了两遍添加.nc后缀的代码,生成了.nc.nc后缀命名的文件名,如何批量删掉一组.nc后缀?
# coding:utf-8
#删除文件名后缀
import os, shutil
rootdir = path # 原始带有后缀名的文件存放路径
remove_path = '/mnt/wtest1/removenc/' # 去除了后缀名的文件存放路径,路径必须存在。
# 修改文件名
def renameFile(oldname, newname):
print("oldname:", oldname)
print("newname:", newname)
# os.rename(oldname, newname)
shutil.copyfile(oldname, newname) #shutil.copyfile(src, dst):将名为src的文件的内容(无元数据)复制到名为dst的文件中 。
# shutil.move(newname,remove_path) #shutil.move(src, dst):将名为src的文件夹中的内容(无元数据)递归移动到名为dst的文件夹中,在此的作用同shutil.copyfile。
# 列出文件
def listTxtFile(filepath):
if os.path.isfile(filepath) and ".nc" or ".nc.nc"== filepath[-6:]:
#根据后缀名的长度设置,.nc.nc为[-6:]。
oldName = filepath
newName = oldName[:-3] #根据所要保存的后缀名的长度设置
renameFile(oldName, newName)
shutil.move(newName, remove_path)
# 遍历目录下所有的文件,
def listPath(filepath):
fileList = os.listdir(filepath)
for file in fileList:
files = os.path.join(filepath, file)
if os.path.isdir(files):
listPath(files)
else:
listTxtFile(files)
if __name__ == "__main__":
listPath(rootdir)