# 打开文件并读取所有行
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列表中也需要包含原来的所有行内容。