Я читаю .csv
, который закодирован в UTF-8
. Я хочу создать индекс и переписать csv
. Индекс создается как постоянное число и первая буква слова. Python 2.7.10, Ubuntu ServerНеисправность при кодировании/декодировании utf-8
#!/usr/bin/env python
# -*- coding: utf-8 -*-
counter = 0
tempDict = {}
with open(modifiedFile, "wb") as newFile:
with open(originalFile, "r") as file:
for row in file:
myList = row.split(",")
toId = str(myList[0])
if toId not in tempDict:
tempDict[toId] = counter
myId = str(toId[0]) + str(counter)
myList.append(myId)
counter += 1
else:
myId = str(toId[0]) + str(tempDict[toId])
myList.append(myId)
# and then I write everything into the csv
for i, j in enumerate(myList):
if i < 6:
newFile.write(str(j).strip())
newFile.write(",")
else:
newFile.write(str(j).strip())
newFile.write("\n")
Проблема заключается в следующем. Когда слово начинается с буквы фантазии, такие как
- Č
- É
- Ā
- ...
Ид создать начинается с ?
, но не с буквой слова. Странная часть состоит в том, что с созданием csv
я создаю слова с причудливыми буквами. Нет ?
или других символов, которые указывают на неправильную кодировку.
Почему?
Какую версию python вы используете? –
И если вы работаете в Windows, возможно, он использует кодировку локали. –
@TimMartin 2.7.10, работая на 'Ubuntu Server' – Stophface