给一个路径,给路径下的文件数字和其他混合按照数字大小排序
'''
数字和其他混合按照数字大小排序
'''
import re
import os
def Mixed_order(path):
number=[]
for i in os.listdir(path):
#number.append(int(i.split("_")[0]))#以分隔符匹配出字符串中的数字,按数字大写排序(局限性大)
number.append(int( re.findall('\d+', i)[0]))#正则匹配出字符串中的数字列表,按选择列表[0]的数字大写排序
number.sort()
file=[]
for i in number:
for p in os.listdir(path):
#if str(i) == p.split("_")[0]:#以分隔符匹配出字符串中的数字,按数字大写排序(局限性大)
if str(i)==re.findall('\d+', p)[0]:#正则匹配出字符串中的数字列表,按选择列表[0]的数字大写排序
#file.append(os.path.join(path,p))#输出的是文件夹路径排序列表
file.append(p)#输出的是文件夹排序列表
break
return(file)
#字典排序
datas = []
datadic = {"Test_No": int(i), "Test_sum": sum, "pass_sum": len(passs), "fail_sum": len(fails),
"error_sum": len(errors), "Accuracy": str(acc)+ '%'}#(round(len(passs) / sum, 4) * 100)+ '%'
datas.append(datadic)
newdic=sorted(datas, key=operator.itemgetter('Test_No')
#路径排序
import imghdr,os
def Getimage(rootdir):
_files = []
dirs=[]
list = os.listdir(rootdir) # 列出文件夹下所有的目录与文件
for i in range(0, len(list)):
path = os.path.join(rootdir, list[i]) # 合并路径,将rootdir和list合并
if os.path.isdir(path):
_files.extend(Getimage(path)[0]) # 递归调用函数
dirs.extend(Getimage(path)[1])
if os.path.isfile(path):
if imghdr.what(path) in ["bmp", "jpg", "png", "gif", "jpeg"]:
_files.append(path)
dirs.append(int(path.split('\\')[-2]))
return [_files,dirs]
def Pathlsit(rootdir):
datalist = (Getimage(rootdir))
testNO = list(set(datalist[1]))
testNO.sort()
Pathlist = []
for i in testNO:
for n in datalist[0]:
if i == int(n.split('\\')[-2]):
Pathlist.append(n)
return Pathlist
rootdir=r'F:\python\AR\testImage'
for i in Pathlsit(rootdir):
print(i)