我有一个csv文件就像原始报告一样,所以我想要从每行中包含特定字符串的行中获取少量行。 父文件:
cols: A B C D E F G H I J K L M N O ----------------------------------------------------------------------- abc def ghi jkl mno pqr stu vwx yz aaa bbb X 0 0 ajsjsvdjchbiyu ======kjdkjfk abe drf gti jul muo pir stu vwx yz aaa bbb X 0 0 ajsjsvdjchbiyu ======kjdkjfk abe drf gti j8l 7uo pir stu vwx yz aaa bbb Y 0 0 ajsjsvdjchbiyu ======kjdkjfk abe drf gti j8l 7uo pir stu vwx yz aga btb Y 0 0 ajsjsvdjchbiyu ======kjdkjfk
子文件应该是:(我只需要在行L中包含Y的行下面)
cols: A B C D E F G H I J K L M N O abe drf gti j8l 7uo pir stu vwx yz aaa bbb Y 0 0 ajsjsvdjchbiyu ======kjdkjfk abe drf gti j8l 7uo pir stu vwx yz aga btb Y 0 0 ajsjsvdjchbiyu ======kjdkjfk
我写了下面的脚本来做到这一点:
import sys
fs=open("compliance_report.csv",'r')
fe=open("failed_controls_report.csv",'w')
count=0
lDict={}
fe.write("\n")
print "\nCleaning un-wanted lines from raw report...."
for l in fs:
if'Y' in l:
fe.write(l)
else:
continue
count=count+1
fs.close()
fe.close()
我们在“0”列中有文本,所以当我使用这个脚本时,我得到的结果在同一行。 但这没有“0”栏
答案 0 :(得分:0)
您需要使用csv
模块将行实际解析为字段。使用您现在拥有的代码,您只需在整行中搜索任何Y
字符,这显然不是您想要的。你可以知道你的代码可能不正确,因为它根本没有提到“L列”,尽管该列是问题陈述的一部分。
答案 1 :(得分:0)
另一种方法是使用 Pandas 库。使用pandas的过程看起来像这样:
finger printing