Найти - Пользователи
Полная версия: регистронезависимый поиск в utf-8
Начало » Python для новичков » регистронезависимый поиск в utf-8
1
Юрчек
Помогите разобраться совсем запутался. Никак не пойму что я делаю не так.
Задача искать по полям 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])
sypper-pit
кк я понял тебе из фаила надо найти совподение на предмет “моя КомпАния” и чтоб это соответствовало “моя компания”
Ferroman
Если ничего не менять - добавить
….
company = company.lower()
….
fl = fl.lower()

А чем кошерный csv, не угодил? И без регулярок.
Юрчек
Ferroman
Если ничего не менять - добавить
….
company = company.lower()
….
fl = fl.lower()

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

Сделаю без регулярок. А вот встроенный cvs не поддерживает utf-8
Ferroman
А да, есть такое.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB