Ampare1987 2023-02-16 17:25 采纳率: 55.6%
浏览 19

Python如何在文本文件某一行前插入数行内容?

文本文件的名称和路径为

r"D:\Restart\LS-DYNA\ball_plate2.k"

文件中有一行的内容是

*ELEMENT_SOLID

我想在这一行之前加如下内容:

*INITIAL_VELOCITY_RIGID_BODY
$#     pid        vx        vy        vz       vxr       vyr       vzr      icid
         4       0.0       0.0      -5.0       0.0       0.0       0.0         0

请问代码如何写?谢谢大家啦

  • 写回答

3条回答 默认 最新

  • MarkHan_ 2023-02-16 17:34
    关注
    
    # 打开文件并读取所有行
    with open(r"D:\Restart\LS-DYNA\ball_plate2.k", 'r') as f:
        lines = f.readlines()
    
    # 在指定行之前插入新的内容
    new_lines = []
    for line in lines:
        if line.startswith('*ELEMENT_SOLID'):
            new_lines.append('*INITIAL_VELOCITY_RIGID_BODY\n')
            new_lines.append('$#     pid        vx        vy        vz       vxr       vyr       vzr      icid\n')
            new_lines.append('         4       0.0       0.0      -5.0       0.0       0.0       0.0         0\n')
        new_lines.append(line)
    
    # 写入文件
    with open(r"D:\Restart\LS-DYNA\ball_plate2.k", 'w') as f:
        f.writelines(new_lines)
    
    

    首先,使用with open()语句打开文件,并通过readlines()方法读取所有行,将其保存到lines列表中。

    然后,遍历lines列表,找到需要插入新内容的指定行。在这个例子中,我们需要在以*ELEMENT_SOLID开头的行之前插入新内容。如果找到了这一行,就在new_lines列表中依次添加需要插入的新内容,然后再添加原来的行内容。

    最后,使用with open()语句再次打开文件,将new_lines列表中的所有行写入文件中,完成插入操作。注意,在写入文件时需要使用w模式打开文件,这将清空文件中的所有内容,所以在new_lines列表中也需要包含原来的所有行内容。

    评论

报告相同问题?

问题事件

  • 修改了问题 2月16日
  • 创建了问题 2月16日

悬赏问题

  • ¥20 两个不同Subnet的点对点连接
  • ¥50 怎么判断同步时序逻辑电路和异步时序逻辑电路
  • ¥15 差动电流二次谐波的含量Matlab计算
  • ¥15 Can/caned 总线错误问题,错误显示控制器要发1,结果总线检测到0
  • ¥15 C#如何调用串口数据
  • ¥15 MATLAB与单片机串口通信
  • ¥15 L76k模块的GPS的使用
  • ¥15 请帮我看一看数电项目如何设计
  • ¥23 (标签-bug|关键词-密码错误加密)
  • ¥66 比特币地址如何生成taproot地址