如何用Python将文本追加到文件第一个空行位置并新增换行
原代码错误原因
- 采用
a追加模式打开文件时,文件指针默认指向文件末尾,调用readline()只能读到文件结束符,无法遍历前面的行内容,自然找不到空行 - 普通文本文件是顺序存储结构,不支持直接在中间位置插入内容,必须先读取全部内容到内存修改,再回写覆盖原文件
实现代码
# 读取文件所有行 with open('tmp.txt', 'r', encoding='utf-8') as f: lines = f.readlines() insert_pos = None # 遍历查找第一个空行的索引 for index, line in enumerate(lines): # strip()可以过滤掉空行里可能存在的空格、制表符等空白字符 if line.strip() == "": insert_pos = index break if insert_pos is not None: # 在第一个空行位置插入目标内容,自带换行 lines.insert(insert_pos, "HI\n") else: # 可选:如果没有找到空行,默认追加到文件末尾 lines.append("HI\n") # 把修改后的内容写回原文件 with open('tmp.txt', 'w', encoding='utf-8') as f: f.writelines(lines)
运行效果
你给出的测试文件运行后内容如下:
1 2 3 4 HI 5 6 7 8 9 0
符合在第一个空行位置插入内容,后续保留原有换行的要求。
内容的提问来源于stack exchange,提问作者Tejas
相关产品推荐
相关产品推荐

