【发布时间】:2014-03-12 23:19:12
【问题描述】:
#!/usr/bin/python
import csv
import re
string_1 = ('OneTouch AT')
string_2 = ('LinkRunner AT')
string_3 = ('AirCheck')
#searched = ['OneTouch AT', 'LinkRunner AT', 'AirCheck']
print "hello Pythong! "
#def does_match(string):
# stringl = string.lower()
# return any(s in stringl for s in searched)
inFile = open('data.csv', "rb")
reader = csv.reader(inFile)
outFile = open('data2.csv', "wb")
writer = csv.writer(outFile, delimiter='\t', quotechar='"', quoting=csv.QUOTE_ALL)
for row in reader:
found = False
for col in row:
if col in [string_1, string_2, string_3] and not found:
writer.writerow(row)
found = True
#for row in reader:
# if any(does_match(col) for col in row):
# writer.writerow(row[:2]) # write only 2 first columns
inFile.close()
outFile.close()
我试图弄清楚如何在 CSV 文件中搜索 3 个项目。如果这些项目存在,则打印该行。理想情况下,我只想将第 1 列和第 3 列打印到新文件中。
示例数据文件
LinkRunner AT Video,10,20
Wireless Performance Video OneTouch AT,1,2
Wired OneTouch AT,200,300
LinkRunner AT,200,300
AirCheck,200,300
【问题讨论】:
-
目前唯一不起作用的是我只想打印第一列和第三列。理想情况下,它会先打印出 aircheck 行,然后是 Linkrunner 行,然后是 onetouch at 行。