如何检查文本文件每行末尾字符并避免重复添加指定字符
解决重复添加指定字符的问题
直接用整合后的代码就能实现需求,既给每行IP末尾加逗号,又能避免重复添加:
file = 'test.txt' char = ',' new_content = "" with open(file, 'r') as f: for line in f: stripped_line = line.strip() # 处理空行,直接保留换行(不需要可删除此段) if not stripped_line: new_content += '\n' continue # 判断行末是否已存在目标字符 if stripped_line[-1] == char: new_content += stripped_line + '\n' else: new_content += stripped_line + char + '\n' # 写入更新后的内容 with open(file, 'w') as f: f.write(new_content)
逻辑说明
把你原来的两段代码逻辑合并到遍历循环里即可,核心步骤:
- 用
strip()去掉每行首尾的空白(包括换行、空格),避免干扰行末字符的判断; - 先处理空行:如果strip后是空字符串,直接保留换行(按需调整);
- 检查处理后的行的最后一个字符是否等于目标字符
char:- 若已存在,直接保留该行并加换行;
- 若不存在,添加目标字符后再加换行;
- 用
with语句自动管理文件,无需手动调用close(),更安全。
对原有代码的优化点
- 去掉了冗余的手动文件关闭操作,
with上下文会自动处理; - 变量名更清晰,提升代码可读性;
- 增加了空行处理逻辑,避免空行被错误添加字符;
- 彻底解决了多次运行脚本时,每行末尾重复出现多个逗号的问题。
内容的提问来源于stack exchange,提问作者mak47
相关产品推荐
相关产品推荐

