在csv文件中搜索Python列表中的元素
我需要一些关于我用Python编写的脚本的帮助,但它不起作用 所以我有一个带有一些标识符(数字)的文件,我把它转换成一个列表。到目前为止还不错 然后我想检查一个.csv文件,如果该行的第一个元素在上一个列表中,则将该行写入一个新的.csv文件 我的脚本如下所示:在csv文件中搜索Python列表中的元素,python,Python,我需要一些关于我用Python编写的脚本的帮助,但它不起作用 所以我有一个带有一些标识符(数字)的文件,我把它转换成一个列表。到目前为止还不错 然后我想检查一个.csv文件,如果该行的第一个元素在上一个列表中,则将该行写入一个新的.csv文件 我的脚本如下所示: tratamento = open('therapies.csv') tratados_B = open('tratados_SubB.csv') Outfile = open('subtype_B_Tratamento.csv', '
tratamento = open('therapies.csv')
tratados_B = open('tratados_SubB.csv')
Outfile = open('subtype_B_Tratamento.csv', 'w')
treated_list = []
for line in tratados_B:
TL = line.strip()
treated_list.append(TL)
for line in tratamento:
TLB = line.strip().split(';')[0]
if TLB in treated_list:
Outfile.write(line)
else:
pass
知道我做错了什么吗
提前谢谢你 尝试在脚本末尾添加
Outfile.close()
更好的方法是将与
关键字一起使用
treated_list = []
with open('subtype_B_Tratamento.csv', 'w') as Outfile,
open('therapies.csv') as tratamento,
open('tratados_SubB.csv') as tratados_B:
for line in tratados_B:
TL = line.strip()
treated_list.append(TL)
for line in tratamento:
TLB = line.strip().split(';')[0]
if TLB in treated_list:
Outfile.write(line)
With
为您处理文件关闭。请解释“它不工作”。此外,文件对象在访问后也会显式关闭。您的源代码中是否有Outfile.close()
或Outfile.flush()
?基本上,我认为它只读取第一行,因为第一行不在列表中,所以它不会执行任何其他操作。输出文件为空。我添加了Outfile.close(),它没有改变任何东西。@MEusebio循环中没有break
语句,因此它将在所有行中循环,但是else:pass
东西是不必要的。尝试在循环内部打印repr(TLB)
。您可以添加示例输入文件吗?试着把它们减到最小,看看你是否能重现错误。如果可以,请用这些更新您的答案。