Задача искать по полям csv-файла в кодировке UTF-8
привожу свой скрипт полностью.
У меня на компьютере Линукс и локаль настроена на ru_RU.UTF-8. В скрипт идет один параметр - имя компании, которую надо найти в файле. Но как сделать поиск регистронезависимым.
#!/usr/bin/python
# -*- coding: utf-8 -*-
BASE= '/home/yur4/docs/clientbase.csv'
ADDR, COMPANY, TEL, EMAIL = 0, 1, 2, 4
import codecs
import sys
import re
if len(sys.argv) < 2:
print 'использование: cl имя_компании'
sys.exit(2)
company = re.compile(sys.argv[1].decode("utf-8"), re.I, re.U)
def splitline(line):
"""Раздеялем строку в формате csv на поля"""
fields = []
cur = ''
ignor = False
for char in line:
if char == '"':
ignor = not ignor
elif char != ',' or ignor:
cur += char
else:
fields.append(cur)
cur = ''
return fields
try:
fbase = codecs.open(BASE, 'r', 'utf-8')
except IOError:
print 'Файло не найдено %s' % BASE
sys.exit(1)
for string in fbase:
fl = splitline(string)
if len(fl) < 5:
continue
if company.match(fl[COMPANY]):
print u'НАЗВАНИЕ %s\nАДРЕС %s\nТЕЛЕФОН %s\nEMAIL %s\n' % (fl[COMPANY],fl[ADDR], fl[TEL], fl[email])