PyQt:我如何确定使用哪种编码?

时间:2011-12-24 12:40:21

标签: python pyqt

我有一个使用Qt Designer的py文件,我有一个组合框,我从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 :(得分:0)

这与编码无关。

发生错误只是因为从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阅读器为文件中的每一行返回字符串列表