You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python在文件指定位置插入一行内容?

在含'nail'的行后插入'hammer'的代码修正方案

原代码问题分析

原代码存在两处冗余/潜在问题:

  • line = line.replace(line, line+'\n'+'hammer'+'\n')属于无效操作,直接对line拼接内容即可,无需使用replace。
  • 结合fileinput的inplace模式,print()会自动追加换行符,手动添加\n可能导致多余空行。

修正后的代码方案(推荐)

import fileinput

file_name = '/Users/xxxx/PycharmProjects/pythonProject/HWDataList.txt'  
for line in fileinput.FileInput(file_name, inplace=True):  
    # 移除行尾的换行符,避免print重复添加
    stripped_line = line.rstrip('\n')
    print(stripped_line)
    # 匹配到'nail'时,在下一行插入'hammer'
    if 'nail' in stripped_line:
        print('hammer')

另一种简洁写法

如果希望保留原行的换行符(避免处理最后一行无换行的情况),可以这样写:

import fileinput

file_name = '/Users/xxxx/PycharmProjects/pythonProject/HWDataList.txt'  
for line in fileinput.FileInput(file_name, inplace=True):  
    # 直接打印原行,不追加额外换行
    print(line, end='')
    # 匹配到'nail'时插入新行
    if 'nail' in line:
        print('hammer')

效果验证

执行上述代码后,原文件内容会变为:

xxxx  
yyyy  
zzzzz  
nail  
hammer  
kkkk  
jjjjj

完全符合预期需求。

内容的提问来源于stack exchange,提问作者Santhosh Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 11:09:58