我是python的新手,我有一个csv文件,我需要根据第三个“_”之后的字符选择某些行。
这是来自csv文件的示例:
header row
date,ttp_ws_sm_001_01, , , , , , , , , , , ,117
date,ttp_ws_sm_001_blank, , , , , , , , , , , ,31
date,ttp_ws_sm_045_01, , , , , , , , , , , ,145
date,ttp_ws_sm_057_blank, , , , , , , , , , , ,98
date,ttpv1_001_, , , , , , , , , , , ,67
date,ttpv1_001_01, , , , , , , , , , , ,67
...
我试图从行[1]中选择它= 001和行(13)。我似乎无法弄清楚如何让这个选择工作。我有这段代码:
import csv
import sys
source = '\\\\filepath' #the folder i need to pull from
with open(source + '\TTP_13_08.csv') as f:
rows = csv.reader(f)
for row in rows:
print (row[1], row[13])
这将打印整个csv文件的两列。 从这个csv文件我只需要包含001的四行。
答案 0 :(得分:4)
>>> with open(...) as f:
... rows = csv.reader(f)
... for row in rows:
... t = row[1].split('_')
... if len(t) >= 4 and t[3] == '001':
... print (row[1], row[13])
...
('ttp_ws_sm_001_01', '117')
('ttp_ws_sm_001_blank', '31')
答案 1 :(得分:2)
检查001
中是否有row[1]
:
for row in rows:
if "001" in row[1]:
print (row[1], row[13])
为您的示例数据打印:
('ttp_ws_sm_001_01', '117')
('ttp_ws_sm_001_blank', '31')
('ttpv1_001_', '67')
('ttpv1_001_01', '67')