Python处理ID字符串异常:满足条件却未移除末尾字符排查
问题分析与解决
你的代码逻辑本身是正确的——当ID的第5、6位(对应索引4-5)为'12'时,会移除最后一位字符。你觉得结果没变化,核心原因是:你只完成了ID的内存处理,却没有将处理后的结果写入到文件中,原文件自然不会有任何修改。
修正方案
在代码末尾添加写入文件的逻辑,你可以选择覆盖原文件,或者写入新文件(更安全,避免误删原数据):
完整修正代码
def process_image_ids(multiple_ids): processed_ids = [] for multiple_id in multiple_ids: if multiple_id[4:6] == "12": processed_id = multiple_id[:-1] else: processed_id = multiple_id processed_ids.append(processed_id) return processed_ids with open ('x\\y\\list_multiple_ids.txt', 'r') as f: multiple_ids = [line.strip() for line in f.readlines()] processed_ids = process_image_ids(multiple_ids) # 选项1:覆盖原文件(谨慎使用,会替换原数据) with open('x\\y\\list_multiple_ids.txt', 'w') as f: f.write('\n'.join(processed_ids)) # 选项2:写入新文件(推荐,保留原数据) # with open('x\\y\\processed_ids.txt', 'w') as f: # f.write('\n'.join(processed_ids))
验证结果
针对你提供的示例ID:
- 原ID
01MA12023654894C符合条件,处理后变为01MA12023654894 - 原ID
02MAYBAM369589000不符合条件,保持原样
内容的提问来源于stack exchange,提问作者Justina Vitkutė
相关产品推荐
相关产品推荐

