如何用Python修改TXT文件,调整_dislinearity标记的目标行
修改renamer.py以调整非线性行标记规则
1. 定位原代码中的线性判断逻辑
先找到renamer.py里负责判断“是否符合线性规则”的代码段——这部分通常会提取文件名(如0365)和冒号后的数字(如0349),再做数值比较。原代码大概是这个样子:
with open('ocr_results.txt', 'r') as f: for line in f: line = line.strip() if not line: continue img_name, target = line.split(':') # 提取数字部分 img_num = int(img_name.replace('.bmp', '')) target_num = int(target) # 原线性判断逻辑(示例:差值固定为16) if abs(img_num - target_num) != 16: new_img_name = img_name.replace('.bmp', '_dislinearity.jpg') else: new_img_name = img_name.replace('.bmp', '.jpg') # 输出处理结果 print(f"{new_img_name}:{target}")
2. 根据需求修改判断条件
你需要标记0363.jpg:0027而非原代码标记的行,可根据实际需求选择以下两种修改方式:
方式1:单独标记指定行
如果只是要针对某一行做特殊标记,直接新增特定判断逻辑:
with open('ocr_results.txt', 'r') as f: for line in f: line = line.strip() if not line: continue img_name, target = line.split(':') img_num = int(img_name.replace('.bmp', '')) target_num = int(target) is_dislinear = False # 标记你指定的行 if img_num == 363 and target_num == 27: is_dislinear = True # 保留原线性规则(不需要的话可以删掉这行elif) elif abs(img_num - target_num) != 16: is_dislinear = True if is_dislinear: new_img_name = img_name.replace('.bmp', '_dislinearity.jpg') else: new_img_name = img_name.replace('.bmp', '.jpg') print(f"{new_img_name}:{target}")
方式2:调整整体线性规则
如果要彻底修改“线性”的定义(比如原规则是固定差值,现在改为差值在某个范围内才算线性),直接替换判断条件即可:
# 示例:改为差值超过5就判定为非线性 if abs(img_num - target_num) > 5: new_img_name = img_name.replace('.bmp', '_dislinearity.jpg') else: new_img_name = img_name.replace('.bmp', '.jpg')
3. 验证修改结果
运行修改后的代码,把输出保存到新文件里检查:
python renamer.py > new_ocr_results.txt
打开new_ocr_results.txt,确认0363.jpg:0027已被标记为0363_dislinearity.jpg:0027,且原错误标记的行不再被标记(如果调整了规则)。
内容的提问来源于stack exchange,提问作者konos93
相关产品推荐
相关产品推荐

