我正在用 python3 编写脚本,但无法解决以下问题。
我有一个具有这种模式的名称列表:
ZINC123456
ZINC234567
ZINC345678
ZINC456789
...
我有一个像这样的大文件:
ZINC123456
xxx
xxx
xxx
ZINC987654
xxy
xxy
xxy
xxy
ZINC654987
...
我想要做的是:遍历第一个列表中的每个项目并在第二个文件中搜索它。当找到这个项目时,复制这一行和以下所有内容,直到到达下一个 ZINCxxxxxx 模式到一个新文件中。
我怎样才能做到这一点?非常感谢您的帮助!
编辑:感谢 Sudipta Chatterjee,我找到了以下解决方案:
import sys
finZ=open(sys.argv[1],'r')
finX=open('zinc.sdf','r')
fout=open(sys.argv[1][:7]+'.sdf','w')
list=[]
thislinehaszinc = False
zincmatching = False
for zline in finZ:
if zline[0:4] == "ZINC":
name = zline[:-1] #line[4:-1]
if name not in list:
list.append(name)
for xline in finX:
if xline[0:4] == "ZINC":
thislinehaszinc = True
zincmatching = False
for line in list:
if line == xline[:-1]:
zincmatching = True
fout.write(xline)
print('Found: '+xline)
pass
else:
pass
else:
thislinehaszinc = False
if thislinehaszinc == False and zincmatching == True:
fout.write(xline)