python重命名文件夹文件
核心是os.rename
函数,该函数的用法如下:
- os.rename(old_path,new_path):将文件
old_path
重命名为new_path
使用说明
待重命名的文件目录结构如下:
root_path
├── depth_img
│ ├── a.csv
│ ├── b.csv
│ ├── ......
├── raw_img
│ ├── a.jpg
│ ├── b.jpg
│ ├── ......
├── left_fish
│ ├── a.jpg
│ ├── b.jpg
│ ├── ......
├── right_fish
│ ├── a.jpg
│ ├── b.jpg
│ ├── ......
creat_path
函数会创建一个空文件夹rename_files
函数会根据你提供的二级目录以及文件后缀名重命名,按照排序重命名所有文件。(二级目录指depth_img
这一级目录)rename_all_path
函数则会重命名一级目录下的所有子目录里面的文件,其中depth_img
使用csv
后缀命名,其余的则使用jpg
文件命名
代码实现
import numpy as np
import cv2
import matplotlib.pyplot as plt
import os
import argparse
def creat_path(path):
if not os.path.exists(path):
os.makedirs(path)
def rename_files(ori_root,s = '.jpg'):
## rename file by time ord
re_name = 0
path_list = os.listdir(ori_root)
path_list.sort(key=lambda x:float(x[:-4]))
for name in path_list:
ori_path = os.path.join(ori_root,name)
re_path = os.path.join(ori_root,str(re_name)+s)
os.rename(ori_path,re_path)
re_name += 1
def rename_all_path(root_path):
path_list = os.listdir(root_path)
for dir_name in path_list:
# dir_name = ['raw_img', 'left_fish', 'right_fish', 'depth_img']
ori_root = os.path.join(root_path,dir_name)
if dir_name == 'depth_img':
rename_files(ori_root,'.csv')
else:
rename_files(ori_root,'.jpg')
if __name__ == '__main__':
#rospy.init_node(PKG)
parser = argparse.ArgumentParser()
parser.add_argument("--root", help="root path", type=str,default='root_path/')
# parser.add_argument("--s", help=".csv", type=str,default='.csv')
args = parser.parse_args()
print("rename this root path's file:{}".format(args.root))
rename_all_path(args.root)
print("ok!")