【筛选出文件名中包含中文汉字以及括号等特殊字符的文件】

遍历文件夹中的所有文件,把名称中包含存在中文字符的文件拿出来放到一个新的文件夹中

在训练模型时,会处理数据集,数据集的样式因为标注人员的执行标准不同,最后图像数据参差不齐,需要对图片数据做调整

  1. 首先定义了源文件夹和目标文件夹的路径
  2. 然后检查并创建目标文件夹
  3. 接着遍历源文件夹及其所有子文件夹,对每个文件名进行检查,看其是否包含中文字符
  4. 如果文件名包含中文字符,则将该文件移动到目标文件夹
  5. 这段代码使用了正则表达式[\u4e00-\u9fff()]+来匹配任何包含中文字符或括号的文件名。如果你只需要检查文件名是否包含中文或括号中的任意一种,保留这个正则表达式即可;如果需要两者都必须存在,请调整正则表达式以符合你的需求。
import os
import re
import shutil

# 源文件夹路径
src_folder = r'D:\pythonProject\1scripts\images\test'
# 新建的目标文件夹路径
target_folder = r'D:\pythonProject\1scripts\images\test_chinese'

# 如果目标文件夹不存在,则创建它
if not os.path.exists(target_folder):
    os.makedirs(target_folder)

# 定义一个正则表达式,用于匹配包含中文和括号的文件名
filename_pattern = re.compile(r'[\u4e00-\u9fff()]+')  # 匹配Unicode范围内的中文字符和括号

# 遍历源文件夹中的所有文件和子文件夹
for dir_path, dir_names, file_names in os.walk(src_folder):
    for file_name in file_names:
        if filename_pattern.search(file_name):  # 如果文件名匹配正则表达式
            src_file_path = os.path.join(dir_path, file_name)
            target_file_path = os.path.join(target_folder, file_name)

            # 将包含中文字符或括号的文件移动到目标文件夹
            shutil.move(src_file_path, target_file_path)

# 注意:这段代码会将源目录下满足条件的所有文件移动到目标文件夹,而不是复制。
# 如果你需要复制文件,请使用shutil.copy2()函数替换shutil.move()函数。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值