2

I have a script like this:

#!/Python26/
# -*- coding: utf-8 -*-

import sys
import xlrd
import xlwt

argset = set(sys.argv[1:])

#----------- import ----------------
wb = xlrd.open_workbook("excelfile.xls")

#----------- script ----------------
#Get the first sheet either by name
sh = wb.sheet_by_name(u'Data')

hlo = []

for i in range(len(sh.col_values(8))):
   if sh.cell(i, 1).value in argset:
        if sh.cell(i, 8).value == '':
            continue
        hlo.append(sh.cell(i, 8).value)

excelfile.xls contains unicode strings and I want to test against these strings from command line:

C:\>python pythonscript.py päätyö
pythonscript.py:34: UnicodeWarning: Unicode equal comparison failed to convert both arguments to
icode - interpreting them as being unequal
  if sh.cell(i, 1).value in argset:

How should I modify my code for Unicode?

2 Answers 2

4

Python has a sequence type called unicode which will be useful here. These links contain more information to help you regarding this:

Sign up to request clarification or add additional context in comments.

2 Comments

I found this, which solved the problem: stackoverflow.com/questions/846850/…
The first link does not exist anymore!
1

Try encoding the Excel unicode to string using cp1252 (windows default unicode) and then testing. I know a lot of people don't recommend this, but this is what sometimes solve my problems.

Pseudo=> if sh.cell(i, 1).value.encode('cp1252') in argset: ...

Br.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.