文章目录
- 一、获取文件
- 二、批量重命名文件
- 三、文件复制、移动
一、获取文件
import os
-----------------------获取文件夹下所有需要的文件名-------------------------
def list_dictionary_codes(root_dir):
paths_list = []
for parent, dirNames, fileNames in os.walk(root_dir):
for name in fileNames:
ext = ['.h', '.m', '.xib', '.json', '.c', '.cpp', '.mm', '.md']
if name.endswith(tuple(ext)):
paths_list.append(os.path.join(parent, name))
return paths_list
-----------------------获取文件夹下所有文件名-------------------------
def read_name_list(path):
import os
name_list = []
for child_dir in os.listdir(path):
name_list.append(path+"/"+child_dir)
return name_list
name_lists = read_name_list("./images")
print (name_lists)
输出:
['./images/example_01.jpg', './images/example_02.jpg',
'./images/example_03.jpg', './images/example_04.jpg']
二、批量重命名文件
import os
class BatchRename():
"""
批量重命名文件夹中的图片文件
"""
def __init__(self,path):
self.path = path
def rename(self):
filelist = os.listdir(self.path)
total_num = len(filelist)
i = 1
for item in filelist:
Suffix_name = ['.png', '.jpg', '.jpeg', '.tif']
if item.endswith(tuple(Suffix_name)):
n = 6 - len(str(i))
src = os.path.join(os.path.abspath(self.path), item)
dst = os.path.join(os.path.abspath(self.path), str(0) * n + str(i) + '.jpg')
try:
os.rename(src, dst)
print('converting %s--to-->%s' % (src, dst))
i = i + 1
except:
continue
print('total %d to rename & converted %d jpgs' % (total_num, i))
if __name__ == '__main__':
path = "./cccc" # 图片文件夹路径
demo = BatchRename(path).rename()
输出:
converting D:\python_script\cccc\www (1).jpg --to--> D:\python_script\cccc\000001.jpg
converting D:\python_script\cccc\www (2).jpg --to--> D:\python_script\cccc\000003.jpg
converting D:\python_script\cccc\www (3).jpg --to--> D:\python_script\cccc\000004.jpg
converting D:\python_script\cccc\www (4).jpg --to--> D:\python_script\cccc\000005.jpg
converting D:\python_script\cccc\www (5).jpg --to--> D:\python_script\cccc\000006.jpg
total 10 to rename & converted 11
三、文件复制、移动
import os
import shutil
def list_dictionary_codes(root_dir):
paths_list = []
for parent, dirNames, fileNames in os.walk(root_dir):
for name in fileNames:
ext = ['.jpg', '.png', '.jpeg', '.json'] #需要移动文件的后缀名
if name.endswith(tuple(ext)):
paths_list.append(os.path.join(parent, name))
return paths_list
def copy_move_file(root_dir,target_path):
paths_list = list_dictionary_codes(root_dir)
for file_path in paths_list:
shutil.copy(file_path,target_path)
print("正在复制文件:",file_path)
print("done!")
if __name__ == '__main__':
root_dir = "./dddd" # 源文件目录
target_path = "./ffff" # 目标目录
copy_move_file(root_dir, target_path)
以上为文件复制,若需要移动文件只需要:
将 shutil.copy(file_path,target_path)
改为 shutil.move(file_path,target_path)