Python 如果行中的条目不在列表中,则删除完整的行
我试图解析Python 如果行中的条目不在列表中,则删除完整的行,python,Python,我试图解析list.txt中的每一行,如果change\u list中没有任何更改(数字),请删除整个条目(不仅仅是该数字),并创建一个新文件OUTPUT.txt,其中包含剩余的数字 在下面的示例中,change_list中不存在350166,因此整行“350882 348521 350166”被删除,只有剩下的一行被添加到output.txt 由于某种原因,我似乎没有得到想要的结果。有人能指出哪里出了问题吗 change_list=[] def changecheck(change) :
list.txt
中的每一行,如果change\u list
中没有任何更改(数字),请删除整个条目(不仅仅是该数字),并创建一个新文件OUTPUT.txt
,其中包含剩余的数字
在下面的示例中,change_list
中不存在350166,因此整行“350882 348521 350166”被删除,只有剩下的一行被添加到output.txt
由于某种原因,我似乎没有得到想要的结果。有人能指出哪里出了问题吗
change_list=[]
def changecheck(change) :
changelist=['355199','352470','346917','350882','348521']
if change in changelist:
return 1
else:
return 0
with open('list.txt', 'r') as f:
for line in f :
line=line.strip()
change_line = line
print "change_line"
print change_line
for element in change_line:
change_list = element.split(' ')
for changeid in change_list:
print "changeid"
print changeid
returnVal = changecheck('changeId')
if returnVal == 1:
#write the whole line to a new file
with open('output.txt', 'r') as f:
f.writelines(element)
档案:
list.txt
350882 348521 350166
346917 352470
355199
OUTPUT.txt
346917 352470
355199
将您的
changecheck
aset
,然后在输入上构建一个生成器,将其拆分为单独的数字,并且只在文件中包含行中所有数字都在changecheck中的行,例如:
changelist = {'355199','352470','346917','350882','348521'}
with open('input') as fin, open('output', 'w') as fout:
lines = (line.split() for line in fin)
valid = (' '.join(line) + '\n' for line in lines if all(el in changelist for el in line))
fout.writelines(valid)
您不需要使用1和0。如果changelist:with open…中有更改,您可以简单地使用
,我认为问题中的主要遗漏点是'w'
标志。