import os
import re
# 目录路径
directory_path = './train'
# 用于存储提取的数字(作为整数)的列表
extracted_numbers = []
# 获取目录下的所有文件和子目录名称
files_and_dirs = os.listdir(directory_path)
# 遍历文件和子目录名称
for name in files_and_dirs:
# 使用正则表达式匹配文件名中的数字
matches = re.findall(r'\d+', name) # \d+ 匹配一个或多个数字
# 如果找到数字,尝试将它们转换为整数并添加到列表中
# 这里我们假设只关心第一个匹配的数字,并将其转换为整数
if matches:
# 尝试转换第一个匹配项为整数,如果失败则跳过(例如,如果匹配到的是以0开头的数字字符串)
try:
number = int(matches[0])
extracted_numbers.append(number)
except ValueError:
# 如果转换失败,可以打印一条消息或进行其他错误处理
# print(f"无法将 {matches[0]} 转换为整数")
pass
# 对提取的数字列表进行从大到小的排序
extracted_numbers.sort()#reverse=True从大到小
# 打开一个文件以写入提取的数字
with open('numbers.txt', 'w') as f:
# 将每个数字写入文件,每个数字占一行
for number in extracted_numbers:
f.write("'"+str(number)+"'"+',' + '\n')
# 打印排序后的数字(可选)
print(extracted_numbers)
标签:匹配,数字,matches,路径,number,extracted,从大到,numbers,排序
From: https://blog.csdn.net/qq_67345689/article/details/143195854