python – 如果行包含CSV文件中的字符串,则删除该行
发布时间:2020-12-20 11:54:53 所属栏目:Python 来源:网络整理
导读:我在删除包含一列中的字符串的文本文件中的行时遇到问题.到目前为止,我的代码无法删除该行,但它能够读取文本文件并将其作为CSV文件保存到单独的列中.但这些行不会被删除. 这就是该列中的值如下所示: Ship To or Bill To------------------3000000092-BILL_T
我在删除包含一列中的字符串的文本文件中的行时遇到问题.到目前为止,我的代码无法删除该行,但它能够读取文本文件并将其作为CSV文件保存到单独的列中.但这些行不会被删除.
这就是该列中的值如下所示: Ship To or Bill To ------------------ 3000000092-BILL_TO 3000000092-SHIP_TO 3000004000_SHIP_TO-INAC-EIM 还有20多列和50,000k多行.所以基本上我试图删除包含字符串’INAC’或’EIM’的所有行. import csv my_file_name = "NVG.txt" cleaned_file = "cleanNVG.csv" remove_words = ['INAC','EIM'] with open(my_file_name,'r',newline='') as infile, open(cleaned_file,'w',newline='') as outfile: writer = csv.writer(outfile) for line in csv.reader(infile,delimiter='|'): if not any(remove_word in line for remove_word in remove_words): writer.writerow(line) 解决方法
这里的问题是csv.reader对象将文件的行作为单个列值的列表返回,因此“in”测试检查该列表中的任何单个值是否等于remove_word.
快速修复就是尝试 if not any(remove_word in element for element in line for remove_word in remove_words): 因为如果行中的任何字段包含任何remove_words,则为true. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |