以下脚本适用于REPORT_TYPE为SOD的情况,但是如果我还希望它在我的CSV中具有名为DATE的字段的条件等于10-24-2017呢? DATE字段的格式还包括小时,分钟,秒,但我想忽略它们(例如10-24-2017T23:59:00)。
path = "C:/python-testing/*.csv"
for fname in glob.glob(path):
print(fname)
with open(fname, 'rb') as f:
reader = csv.DictReader(f)
rows = [row for row in reader if row['REPORT_TYPE'] == 'SOD ']
for row in rows:
print row
我尝试了以下内容,但它不喜欢那里的AND并且给我一个无效的语法错误。
rows = [row for row in reader if row['REPORT_TYPE'] == 'SOD ' AND ['DATE'] like '10-24-2017%']
答案 0 :(得分:3)
Python没有LIKE运算符(与SQL不同)。
所以你可以使用startswith方法:
rows = [
row
for row in reader
if row['REPORT_TYPE'] == 'SOD '
and row['DATE'].startswith('10-24-2017')
]
另外,使用小写and
,因为Python的标识符/关键字区分大小写(同样,UNLiKE SqL)。