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

如何使用Python或Bash在文件[ moleculetype ]行前插入指定内容

实现方案

Bash 方法

使用sed流处理工具可以快速完成插入操作:

  • Linux(GNU sed)环境命令:
sed -i '/\[ moleculetype \]/i #ifdef POSRES\n#include "posres.itp"\n#endif' 目标文件名

参数说明:

  • -i 表示直接修改原文件,如果需要备份可以写成-i.bak,会自动生成后缀为.bak的原文件备份
  • 正则匹配部分的中括号需要加反斜杠转义,避免被识别为正则字符集语法
  • i 表示在匹配到的行之前插入内容,\n用来实现换行
  • macOS(BSD sed)环境命令:
    BSD sed的插入语法略有区别,需要在插入内容每一行末尾加反斜杠,且-i参数需要显式指定空备份后缀:
sed -i '' '/\[ moleculetype \]/i \
#ifdef POSRES\
#include "posres.itp"\
#endif' 目标文件名

Python 方法

以下代码可以跨平台实现需求,小文件直接读取所有行处理效率更高:

insert_content = [
    "#ifdef POSRES\n",
    "#include \"posres.itp\"\n",
    "#endif\n\n"
]
file_path = "你的目标文件路径"

# 读取文件所有内容
with open(file_path, 'r', encoding='utf-8') as f:
    lines = f.readlines()

# 查找 [ moleculetype ] 行的位置
for idx, line in enumerate(lines):
    if line.strip() == "[ moleculetype ]":
        # 在匹配行前插入内容
        lines[idx:idx] = insert_content
        break

# 写回原文件
with open(file_path, 'w', encoding='utf-8') as f:
    f.writelines(lines)

如果需要备份原文件,可以在写回之前先将原文件重命名保存即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:45:05