PyQt: Как мне определить, какая кодировка используется? - PullRequest
0 голосов
/ 24 декабря 2011

У меня есть py-файл, использующий Qt Designer, у меня есть комбинированный список, и я читаю из CSV-файла. Если выбор комбинированного списка находится в файле, он что-то печатает.

В верхней части скрипта написано, что: # -*- coding: utf-8 -*-

Итак, я получаю следующую ошибку:

PyQt4.QtCore.QString(u'choice') is not in list

«Выбор», конечно, в списке. Я считаю, что это проблема кодирования, но это все, что у меня есть.

u'choice 'является строкой, а список содержит строки.

Вот как я могу добавить элементы в список:

import csv
list1=csv.reader(open('file.csv', "rb"))
list2=[]
for i in list1:
   list2.append(i)

Есть идеи? Спасибо.

1 Ответ

0 голосов
/ 24 декабря 2011

Это не имеет ничего общего с кодировками.

Ошибка возникает просто потому, что в списке нет строк, считанных из файла CSV:

>>> import csv
>>> with open('tmp.csv', 'wb') as stream:
...     csv.writer(stream).writerow(['choice'])
... 
>>> lst = []
>>> with open('tmp.csv', 'rb') as stream:
...     for row in csv.reader(stream):
...         lst.append(row)
... 
>>> from PyQt4.QtCore import QString
>>> s = QString(u'choice')
>>> lst.index(s)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: PyQt4.QtCore.QString(u'choice') is not in list
>>> lst
[['choice']]
>>> lst[0].index(s)
0

Программа чтения CSV возвращает список строк для каждой строки в файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...