Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/106: Рейтинг темы: голосов - 106, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 28

UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 - invalid start byte

18.05.2015, 14:36. Показов 21051. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день

При вызове скрипта вылетает такая ошибка: "UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 3131: invalid start byte". Вылетает, как я поимаю, в этом месте. При том, что раньше он не вылетал. Файлы, которые пытаюсь открыть вроде бы точно в UTF-8 (в Sublime text 2 при выборе Reopen with UTF-8 нормально открываются). В скрипте еще используется pymorphy2, в которую скармливается нарезанный на слова файл. В чем может быть ошибка?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
dirName = sys.argv[1]
files = [ f for f in listdir(dirName) if isfile(join(dirName,f)) ]
 
for fileName in files:
    f = codecs.open(dirName + "/" + fileName , 'r' , "utf-8")
    text = f.read()
    prevPosition = 0
    position = 0
    while True:
        tmp = countStringLengthByNumberOfWordsFromPosition(text, 1000, prevPosition)
        if tmp != None:
            position += tmp
            TextAtoms.append(CountStatsForString(text[prevPosition : position], str(fileName)[:-4]))
        if abs(len(text) - prevPosition) < 1000:
            break
        else:
            prevPosition = position
    
    f.close()
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2015, 14:36
Ответы с готовыми решениями:

UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 308: character maps to <undefined>
Здраствуйте, написала код, не получается открыть файл для кодировки, а мне выдали вот такие ошибки: Traceback (most recent call last): ...

Ошибка Pyglet UnicodeDecodeError: 'ascii' codec can't decode
Здравствуйте. У меня у проблема с pyglet (каркас для графики и т.п.). Версия Python 2.7.3. ОС: Linux Mint 13 Maya (Ubuntu 12.04 LTS)....

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
Всем доброе время суток. Решил сделать учебный проект. Сделал всё работало, потом дописал код и пришлось удалить и заново создать БД Mysql....

13
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
18.05.2015, 15:00
YERMLV, Для начала полный текст ошибки в студию, во вторых как ты предлагаешь отлаживать это дело, когда тут происходят вызовы функций, которые мы не видим?
0
1 / 1 / 2
Регистрация: 11.02.2014
Сообщений: 97
18.05.2015, 15:01
Добрый день. Присоеденяюсь к вышепоставленному вопросу. При попытке записать в txt файл байт код, выдаёт ту же ошибку:

Code
1
2
3
4
Traceback (most recent call last):
  File "C:\Users\Козак Алексей\workspace\WavHabr\src\wav.py", line 6, in <module>
    f.write(content.decode('utf-8'))
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa5 in position 2: invalid start byte
мой код:
Python
1
2
3
4
5
6
7
import wave
wav=wave.open("sound.wav",mode='r')
(nchannels, sampwidth, framerate, nframes, comptype, compname) = wav.getparams()
content = wav.readframes(nframes)
f=open('qwerty.txt','w')
f.write(content.decode('utf-8'))
f.close()
Подскажите пожалуйста как исправить. Спасибо.
0
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 28
18.05.2015, 15:07  [ТС]
Код ошибки
Code
1
2
3
4
5
6
7
8
Traceback (most recent call last):
  File "/Users/yermolaev/Documents/termwork/tmp/countStat.py", line 116, in <module>
    text = f.read()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/codecs.py", line 671, in read
    return self.reader.read(size)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/codecs.py", line 477, in read
    newchars, decodedbytes = self.decode(data, self.errors)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 3131: invalid start byte
Код ф-ий
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
def CountStatsForString(string, author):
    totalCount = 0
    totalWordLength = 0.0
    words = set()
 
    POSes = {'NOUN' : 0.0, 'ADJF' : 0.0, 'ADJS' : 0.0, 'COMP' : 0.0, 'VERB' : 0.0, 'INFN' : 0.0, 'PRTF' : 0.0, 'PRTS' : 0.0, 'GRND' : 0.0, 'NUMR' : 0.0, 'ADVB' : 0.0, 'NPRO' : 0.0, 'PRED' : 0.0, 'PREP' : 0.0, 'CONJ' : 0.0, 'PRCL' : 0.0, 'INTJ' : 0.0,}
 
    if author not in AuthorsVocabulary.keys():
        AuthorsVocabulary[author] = set()
    totalSentenceNumber = float(len(re.findall(r"[.!?]+", string)))
    wordList = re.split('[., ;?:!\n\'\"]+', string)
    for word in wordList:
        if ((morph.parse(word.lower())[0]).tag.POS != None):
            POSes[(morph.parse(word)[0]).tag.POS] += 1.0
            totalCount += 1
            totalWordLength += float(len(word))
            words.add(word.lower())
            AuthorsVocabulary[author].add(word.lower())
 
    if totalCount != 0:
        for key in POSes.keys():
            POSes[key] /= (float(totalCount)/100.0)
        
        txtAtom = TextAtom(author, POSes, totalWordLength/float(totalCount), float(totalCount)/totalSentenceNumber, len(wordList))
        return txtAtom
    else:
        return None
 
def countStringLengthByNumberOfWordsFromPosition (string, numberOfWords, initPosition):
    if initPosition < len(string):
        str = string[initPosition:]
        totalLength = numberOfWords - 1
        wordList = re.split('[ ]+', str)
        j = min (numberOfWords, len(wordList))
        for i in xrange(0, min(numberOfWords, len(wordList))):
            totalLength += len(wordList[i])
        #if str[totalLength - 1] != ('.' or '!' or '?'):
        #   while j < len(wordList) - 1 and str[totalLength - 1] != ('.' or '!' or '?'):
        #       totalLength += (1 + len(wordList[j + 1]))
        #       j += 1
        return totalLength
    else:
        return None
TextAtom() – просто конструктор одноименного класса, который выполняет роль структуры
Кстати, уточню, что ОС – OS X
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
18.05.2015, 15:12
Цитата Сообщение от Козак Алексей Посмотреть сообщение
Присоеденяюсь к вышепоставленному вопросу
Ну не присоединяюсь, а новую тему создавать надо если что так, это первое.
Второе, с чего ты взял, что что-то в 6 строке нужно декодировать?
0
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 28
18.05.2015, 15:21  [ТС]
На всякий случай поясню: этот кусок кода потрошит текстовый файл на куски по 1000 слов. Собирает разную статистику по каждому куску, записывает в новый объект textAtom, который добавляется в массив таких объектов
0
1 / 1 / 2
Регистрация: 11.02.2014
Сообщений: 97
18.05.2015, 15:23
alex925, По поводу первого: Вы же потом первый скажете что мол "поиск не используют", "одинаковые темы пачками плодят" итд. По поводу второго: метод write() хочет принимать только стринг, если сделать str.content то выдает ошибку:

Code
1
2
3
4
Traceback (most recent call last):
  File "C:\Users\Козак Алексей\workspace\WavHabr\src\wav.py", line 6, in <module>
    f.write(str.content)
AttributeError: type object 'str' has no attribute 'content'
вот я и изобретаю все подряд.
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
18.05.2015, 15:56
Козак Алексей, Одинаковые темы, это когда несколько человек из одного учебного заведения начинают заваливать форум дебильными задачами. То есть один пришёл и создал 3 темы с одной задачей, потом другой сделал тоже самое и т д В данном случае нужно создавать новую тему, а не гадить в чужой.

Цитата Сообщение от Козак Алексей Посмотреть сообщение
вот я и изобретаю все подряд.
А лучше просто включить голову.

Вот пример как происходит просто создание файла с точно таким же содержанием (как я понял ты это пытался сделать).
Python
1
2
3
4
5
6
7
8
9
10
11
import wave
 
wav = wave.open('30 Seconds To Mars - Attack.wav', mode='r')
nchannels, sampwidth, framerate, nframes, comptype, compname = wav.getparams()
 
content = wav.readframes(nframes)
 
out = wave.open('qwerty.wav', 'w')
out.setparams((nchannels, sampwidth, framerate, framerate * 183, 'NONE', 'Uncompressed'))
out.writeframes(content)
out.close()
В качестве примера брал вот этот код http://code.activestate.com/re... -wav-file/

Добавлено через 1 минуту
YERMLV, Сделай вывод в консоль тех файлов, что пытается читать программа и скинь сюда файл, на котором происходит ошибка.
1
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 28
18.05.2015, 16:47  [ТС]
Не работает на всех файлах
https://drive.google.com/file/... sp=sharing вот один из них
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
18.05.2015, 17:05
YERMLV, файл без проблем открывается. Если у тебя возникает ошибка, значит файл, который ты пытаешься открыть все таки не в utf8.
0
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 28
18.05.2015, 17:18  [ТС]
Все решилось. Оказывается, в папке лежала пара скрытых файлов (некий .DS_Store), который мой скрипт тоже пытался прочитать. Спасибо всем за помощь)
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
18.05.2015, 17:22
Цитата Сообщение от YERMLV Посмотреть сообщение
Оказывается, в папке лежала пара скрытых файлов (некий .DS_Store)
Ну вот, а кричал, что ВСЕ файлы не читаются.
0
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 28
18.05.2015, 17:58  [ТС]
я просто методологически неправильно поступал: я оставлял по одному файлу в папке, а там в то же время оставались те скрытые файлы
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
18.05.2015, 18:05
По этому нужно или использовать вывод промежуточных результатов с помощью print или использовать отладчик.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2015, 18:05
Помогаю со студенческими работами здесь

Проблема с фикстурами - UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
Пытаюсь прогнать view-класс через тест с использованием трех фикстур (для продуктов, заказов и пользователей), получаю следующую ошибку:...

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd7 in position 4: invalid continuation byte
Создаю бота для телеграмма на Python с Aiogram. Нужно подключить pyqiwip2p для оплат. Но постоянна выскакивает ошибка якобы не та кодировка...

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcf in position 5: invalid continuation byte
Я чайник. Новичок на Пайтон, уже изучаю веб-приложения, помогите пожалуйста! Я формирую файл с таким содержанием: from flask import...

Unicodedecodeerror 'utf-8' codec can't decode byte 0xd1 in position 0 invalid continuation byte
Всем привет, что делать если при открытии exe файла (я так понял, он написан на питоне, писал его не я) вылезает ошибка unicodedecodeerror...

Ошибка UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcc in position 0: invalid continuation byte
Я написал код и у меня вылетела ошибка UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcc in position 0: invalid continuation...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru