python删除指定文件夹下小于100k的文件

本文介绍了一个Python脚本,用于遍历指定目录下所有文件,并删除大小小于100KB的文件。通过os模块的walk和getsize方法实现,旨在清理无效小文件,释放磁盘空间。
import os

def get_path(file_path):
	for root, dirs, files in os.walk(file_path):
		for file in files:
			filename = os.path.join(root, file)
			del_file(filename)
	
def del_file(filename):
	size = os.path.getsize(filename)
	if size < 100 * 1024:
		print("remove", filename)
		os.remove(filename)

if __name__ == "__main__":
	file_path = "D:\MP4"
	get_path(file_path)
import json import os import re from pathlib import Path def classify_image_folder(image_path): """ 根据image字段值确定分类文件夹 """ # 使用正则表达式匹配关键路径部分 if re.search(r'cap100k', image_path, re.IGNORECASE): return "cap100k" elif re.search(r'div2k', image_path, re.IGNORECASE): return "div2k" elif re.search(r'1107', image_path, re.IGNORECASE): return "1107" else: # 如果都不匹配,使用默认分类 return "other" def extract_gpt_captions(conversations): """ 从conversations中提取所有GPT回复作为caption 新增条件:只采集字符数<800或开头为'T'/'I'的回复 """ captions = [] for conv in conversations: if conv.get("from") == "gpt": value = conv.get("value", "") # 清理GPT回复中的多余空格和换行 cleaned_value = value.strip().replace("\n\n", "\n") # 检查字符数是否<800或以T/I开头 if len(cleaned_value) < 800 or cleaned_value.startswith(('T', 'I')): captions.append(cleaned_value) # 用换行符连接所有符合条件的GPT回复 return "\n".join(captions) def process_jsonl(input_file, output_root): """ 处理JSONL文件,生成分类JSON文件 :param input_file: 输入JSONL文件路径 :param output_root: 输出根目录路径 """ # 确保输出根目录存在 Path(output_root).mkdir(parents=True, exist_ok=True) # 创建分类子目录 for folder in ["cap100k", "div2k", "1107", "other"]: os.makedirs(os.path.join(output_root, folder), exist_ok=True) with open(input_file, 'r', encoding='utf-8') as f: for line in f: try: # 解析JSON行数据 data = json.loads(line) # 提取所有GPT回复作为caption conversations = data.get('conversations', []) gpt_caption = extract_gpt_captions(conversations) # 构建新数据结构 new_data = { "modality": "text-image", "caption": { "language": "en", "caption": gpt_caption, "similarity": None }, "tasks": { "VQA": { "conversations": conversations }, "classification": None, "depth_estimation": None, "segmentation": None, "detection": None } } # 确定分类文件夹 image_path = data.get('image', '') category = classify_image_folder(image_path) # 生成输出文件路径 output_dir = os.path.join(output_root, category) output_file = os.path.join(output_dir, f"{(data.get('image').split('.',1)[0]).split('/',1)[-1]}_{data.get('id')}_vision_annotation.json") # 写入JSON文件 with open(output_file, 'w', encoding='utf-8') as out_f: json.dump(new_data, out_f, indent=2) out_f.write('\n') # 添加换行使文件更易读 print(f"已处理 ID: {data['id']}, 分类: {category}, Caption长度: {len(gpt_caption)}") except json.JSONDecodeError: print(f"JSON解析错误: {line}") except KeyError as e: print(f"缺少必要字段 {e}: {line}") except Exception as e: print(f"处理错误: {e}, 数据: {data}")针对每个文件夹里的文件提供不同的采集策略,对cap100k中的文件提取以T I 开头的;针对1107提取以T I开头的或字符小于500的;针对div2k提取非[0.0, 0.35, 0.15, 0.81]这种形式的
07-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值