Форум сайта python.su
Помогите разобраться совсем запутался. Никак не пойму что я делаю не так.
Задача искать по полям 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])
Офлайн
кк я понял тебе из фаила надо найти совподение на предмет “моя КомпАния” и чтоб это соответствовало “моя компания”
Офлайн
Если ничего не менять - добавить
….
company = company.lower()
….
fl = fl.lower()
А чем кошерный csv, не угодил? И без регулярок.
Отредактировано (Авг. 17, 2009 18:19:22)
Офлайн
FerromanСпасибо!
Если ничего не менять - добавить
….
company = company.lower()
….
fl = fl.lower()
А чем кошерный csv, не угодил? И без регулярок.
Офлайн
А да, есть такое.
Офлайн