2013-11-25 3 views
1

Я пытаюсь разбить следующее поле данных на 3 поля (pre, match и suf) и ввести их в текстовый файл с разделителями-запятыми. Я читаю все это из файла csv ... и это данные utf-8.Использование символов Python для 're.split' unicode

Моя проблема прямо сейчас в том, что я не могу обойти «TypeError: принуждение к Unicode: нужна строка или буфер, список найденных» ошибок ... однако, видя, что я пытался установить свои кодировки, я не знаю, где неразбериха здесь ...

образец данных:

A-1 طس 
TX 35-L 
Av Rib 

Расщепление на это должно (? \ d + (- [с.ш. ю.ш. в.д. з.д.])) предоставить мне с этим:

Column1 | Column2 | Column3 
A  |1  |طس 
TX  |35  |-L 
Av Rib |   | 

Мой текущий код:

## Iterate over csv file to create matches and splits 
## string according to regex pattern.. 

    reader = csv.reader(csvfile) 

    with codecs.open(r'file.txt', 'w', 'utf-8') as outfile1: 
     for row in reader: 
      unicode_row = [x.decode('utf-8') for x in row] 
      item = unicode_row[1] 
      parsed = re.compile("\d+(-?[NSEW])?", re.UNICODE).split(unicode(item, 'utf-8')) 
      outfile1.write(parsed + "\n") 
+0

Где именно вы получите TypeError? Открыт ли csvfile с помощью 'codecs.open' или просто' open'? – user2622016

+0

это вопрос Python3 или Python2? – user2622016

+0

Используя 2.7, я открываю csvfile для чтения, используя только «open» (но, как вы видите, файл записи использует кодеки). – user14696

ответ

Смежные вопросы