import os
from pathlib import Path
import shutil
import re
root_dir='D:\\2022'
dst_dir = 'D:\\dist\\'
ext='.dwg'
is_sorted=True
def traverse_dir_files(root_dir, ext=None, is_sorted=True):
"""
列出文件夹中的文件, 深度遍历
:param root_dir: 根目录
:param ext: 后缀名
:param is_sorted: 是否排序,耗时较长
:return: [文件路径列表, 文件名称列表]
"""
names_list = []
paths_list = []
for parent, _, fileNames in os.walk(root_dir):
for name in fileNames:
if name.startswith('.'): # 去除隐藏文件
continue
if ext: # 根据后缀名搜索
if name.endswith(ext):
names_list.append(name)
paths_list.append(os.path.join(parent, name))
else:
names_list.append(name)
paths_list.append(os.path.join(parent, name))
if not names_list: # 文件夹为空
return paths_list, names_list
if is_sorted:
paths_list, names_list = sort_two_list(paths_list, names_list)
return paths_list, names_list
def sort_two_list(list1, list2):
"""
排序两个列表
:param list1: 列表1
:param list2: 列表2
:return: 排序后的两个列表
"""
list1, list2 = (list(t) for t in zip(*sorted(zip(list1, list2))))
return list1, list2
def mycopyfile(srcfile,dstpath): # 复制函数
if not os.path.isfile(srcfile):
print ("%s not exist!"%(srcfile))
else:
fpath,fname=os.path.split(srcfile) # 分离文件名和路径
if not os.path.exists(dstpath):
os.makedirs(dstpath) # 创建路径
shutil.copy(srcfile, dstpath + fname) # 复制文件
print ("copy %s -> %s"%(srcfile, dstpath + fname))
def mymovefile(srcfile,dstpath): # 移动函数
if not os.path.isfile(srcfile):
print ("%s not exist!"%(srcfile))
else:
fpath,fname=os.path.split(srcfile) # 分离文件名和路径
if not os.path.exists(dstpath):
os.makedirs(dstpath) # 创建路径
shutil.move(srcfile, dstpath + fname) # 移动文件
print ("move %s -> %s"%(srcfile, dstpath + fname))
if __name__ == "__main__":
paths_list, names_list =traverse_dir_files(root_dir, ext)
for file in paths_list:
if re.findall('^(.*?(?=-))',file.split("\\")[-1]):
a = re.findall('^(.*?(?=-))',file.split("\\")[-1]) # 特定文件夹名
print(a)
mycopyfile(file, dst_dir + a[0] + '\\')
else:
mycopyfile(file, dst_dir)
python根据文件名分配文件夹
本博客所有文章如无特别注明均为原创。作者:似水的流年
版权所有:《电光石火-穿越时空》 => python根据文件名分配文件夹
本文地址:http://ilkhome.cn/index.php/archives/961/
欢迎转载!复制或转载请以超链接形式注明,文章为 似水的流年 原创,并注明原文地址 python根据文件名分配文件夹,谢谢。
版权所有:《电光石火-穿越时空》 => python根据文件名分配文件夹
本文地址:http://ilkhome.cn/index.php/archives/961/
欢迎转载!复制或转载请以超链接形式注明,文章为 似水的流年 原创,并注明原文地址 python根据文件名分配文件夹,谢谢。