删除2个具体字符串之间的行的Python脚本
我编写了一个脚本,它读取一个文本文件,如下所示删除2个具体字符串之间的行的Python脚本,python,Python,我编写了一个脚本,它读取一个文本文件,如下所示 *NODE 100000,1144.,-447.2639,339.0315 100001,1144.,-454.7716,342.956 100003,1144.,-448.2677,343.6241 100004,1144.,-454.8527,338.5432 *ELEMENT, TYPE=C3D6 228888,103103,103111,106773,186164,186165,196339 228889,103111,103232,106
*NODE
100000,1144.,-447.2639,339.0315
100001,1144.,-454.7716,342.956
100003,1144.,-448.2677,343.6241
100004,1144.,-454.8527,338.5432
*ELEMENT, TYPE=C3D6
228888,103103,103111,106773,186164,186165,196339
228889,103111,103232,106773,186165,186184,196339
228890,106773,106911,106912,196339,196457,196453
只写
228888,103103,103111,106773,186164,186165,196339
228889,103111,103232,106773,186165,186184,196339
228890,106773,106911,106912,196339,196457,196453
但我真的想让它写下来
*ELEMENT, TYPE=C3D6
228888,103103,103111,106773,186164,186165,196339
228889,103111,103232,106773,186165,186184,196339
228890,106773,106911,106912,196339,196457,196453
下面是我写的代码
with open('shell.txt', 'r') as oldfile, open('new_shell.txt', 'w') as newfile:
for line in oldfile:
if writing:
if "*NODE" in line:
writing = False
else:
newfile.write(line)
elif "*ELEMENT" in line:
writing = True
newfile.write
您没有写入包含*元素的行。但我建议通常使用regex/一些shell脚本来完成所有这些操作。在第行中找到“*元素”时,添加一个额外的
写入(行)
# init conditions
writing = False
with open('shell.txt', 'r') as oldfile, open('new_shell.txt', 'w') as newfile:
for line in oldfile:
if writing:
if "*NODE" in line:
writing = False
else:
newfile.write(line)
elif "*ELEMENT" in line:
newfile.write(line)
writing = True
newfile.write
然后您只需要
。在以“*元素”
开头的行中写入,当然可以吗?在这种情况下,请使用您的条件句。例如,将newfile.write(line)
放在条件句末尾的某个地方,然后稍微调整一下代码。只需查看旧文件,直到找到*元素,然后再编写后面的所有内容。
# init conditions
writing = False
with open('shell.txt', 'r') as oldfile, open('new_shell.txt', 'w') as newfile:
for line in oldfile:
if writing:
if "*NODE" in line:
writing = False
else:
newfile.write(line)
elif "*ELEMENT" in line:
newfile.write(line)
writing = True
newfile.write