Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 17, 2009 18:06:56

Юрчек
От:
Зарегистрирован: 2009-04-14
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

регистронезависимый поиск в utf-8

Помогите разобраться совсем запутался. Никак не пойму что я делаю не так.
Задача искать по полям 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])



Офлайн

#2 Авг. 17, 2009 18:15:30

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

регистронезависимый поиск в utf-8

кк я понял тебе из фаила надо найти совподение на предмет “моя КомпАния” и чтоб это соответствовало “моя компания”

Офлайн

#3 Авг. 17, 2009 18:18:23

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

регистронезависимый поиск в utf-8

Если ничего не менять - добавить
….
company = company.lower()
….
fl = fl.lower()

А чем кошерный csv, не угодил? И без регулярок.

Отредактировано (Авг. 17, 2009 18:19:22)

Офлайн

#4 Авг. 18, 2009 17:44:09

Юрчек
От:
Зарегистрирован: 2009-04-14
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

регистронезависимый поиск в utf-8

Ferroman
Если ничего не менять - добавить
….
company = company.lower()
….
fl = fl.lower()

А чем кошерный csv, не угодил? И без регулярок.
Спасибо!

Сделаю без регулярок. А вот встроенный cvs не поддерживает utf-8



Офлайн

#5 Авг. 18, 2009 18:24:03

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

регистронезависимый поиск в utf-8

А да, есть такое.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version