Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/29: Рейтинг темы: голосов - 29, средняя оценка - 4.52
27 / 19 / 10
Регистрация: 10.02.2016
Сообщений: 236
1

Ошибка кодировки при чтении из файла

30.03.2017, 14:11. Показов 5723. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, коллеги! Читаю локальный файл при помощи urllib
Python
1
2
3
4
5
import urllib
file_address="C:/work/stores/4067.html"
file=urllib.request.urlopen("file:///" + file_address)
soup=BeautifulSoup(file,"lxml")
print(soup.prettify())
При этом весь русский текст превращается в тарабарский. Открываю локальный файл браузером и тоже тарабарский. Если открывать файл блокнотом, то всё нормально. В файле указана кодировка:
HTML5
1
charset=windows-1251
Как добавить кодировку в
Python
1
urllib.request.urlopen()
?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2017, 14:11
Ответы с готовыми решениями:

Ошибка при чтении файла
Программа должна выводить имена файлов и их строки построчно. При запуске выдает ошибку...

Ошибка при чтении данных из файла
Вот задача но код не работает выдает ошибку Необходимо реализовать один из методов для решения...

Ошибка при чтении файла csv: UnicodeDecodeError
Есть файл csv: tmdb_5000_movies.csv Задача - прочитать его и записать содержимое в объект в...

Ошибка кодировки при чтении из файла
При попытке выборки данных по определенным тегам из сохраненного файла при помощи BeautifulSoup,...

Определение кодировки при чтении из файла
Подскажите как причитать из файла, чтобы содержимое richtextbox было идентичным содержанию файла ...

12
103 / 81 / 54
Регистрация: 25.11.2016
Сообщений: 278
30.03.2017, 14:22 2
измени кодировку файла на utf-8
1
27 / 19 / 10
Регистрация: 10.02.2016
Сообщений: 236
30.03.2017, 14:51  [ТС] 3
Есть очень много файлов и заходить в каждый менят неудобно, можно ли как-то в функции это сделать?

Добавлено через 1 минуту
изменил в одном, всё работает, но всё же не хочется лезть во все файлы
0
Эксперт по компьютерным сетям
5901 / 3358 / 1036
Регистрация: 03.11.2009
Сообщений: 10,009
30.03.2017, 17:05 4
А почему используете urllib, вместо того, чтобы open() Ваш файл?
1
27 / 19 / 10
Регистрация: 10.02.2016
Сообщений: 236
30.03.2017, 17:53  [ТС] 5
Чтобы запихнуть его в BeautifulSoup, на open() суп ругается
0
135 / 120 / 37
Регистрация: 30.09.2012
Сообщений: 400
30.03.2017, 17:58 6
Python
1
BeautifulSoup(open("lalala.html"))
и какую ошибку выдает?
1
27 / 19 / 10
Регистрация: 10.02.2016
Сообщений: 236
31.03.2017, 11:14  [ТС] 7
Код
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 774: character maps to <undefined>
0
135 / 120 / 37
Регистрация: 30.09.2012
Сообщений: 400
31.03.2017, 11:20 8
Лучший ответ Сообщение было отмечено Joey Black как решение

Решение

попробуй
Python
1
2
3
import codecs
fileObj = codecs.open( "someFilePath", "r", "cp1251" )
soup = BeautifulSoup(fileObj)
1
27 / 19 / 10
Регистрация: 10.02.2016
Сообщений: 236
31.03.2017, 11:34  [ТС] 9
Python
1
2
3
4
from bs4 import BeautifulSoup
import codecs
file = codecs.open( file_address, "r", "cp1251" )
soup = BeautifulSoup(file,'lxml')
Код
  File "C:\Anaconda3\lib\encodings\cp1251.py", line 15, in decode
    return codecs.charmap_decode(input,errors,decoding_table)

UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 809: character maps to <undefined>
0
135 / 120 / 37
Регистрация: 30.09.2012
Сообщений: 400
31.03.2017, 11:43 10
значит кодировка файла другая, попробуй utf-8 или файл сюда выложи
1
27 / 19 / 10
Регистрация: 10.02.2016
Сообщений: 236
31.03.2017, 11:47  [ТС] 11
С utf-8 заработало), спасибо!!!
0
27 / 19 / 10
Регистрация: 10.02.2016
Сообщений: 236
06.04.2017, 15:17  [ТС] 12
коллеги, сел за другой комп, запустил и теперь вместо русского языка одни знаки вопроса, что делать?
Вложения
Тип файла: txt test.txt (10.9 Кб, 2 просмотров)
0
27 / 19 / 10
Регистрация: 10.02.2016
Сообщений: 236
06.04.2017, 15:41  [ТС] 13



Добавлено через 2 минуты
не получается выложить страницу

Добавлено через 18 минут
поменял язык программ не поддерживающих юникод на русский, всё заработало
0
06.04.2017, 15:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.04.2017, 15:41
Помогаю со студенческими работами здесь

Кодировки при чтении кирилицы с текстового файла
Дан текстовый файл. Заменить в нем все прописные русские буквы на строчные, а все строчные — на...

Сохранение кодировки при чтении XML-файла
Всем привет :) Прошу знающих людей помочь советом, или просто пальцем ткнуть в литературу, только...

Изменение кодировки текста при чтении/записи файла txt
Здравствуйте! Код ниже изменяет файл (отбрасывает последний знак в файле &quot;переноса строки&quot; если...

Ошибка при чтении файла
Читаю в скрипте файл (размер~25мб) $file = fopen($myfile,&quot;r&quot;); $line =...

Ошибка при чтении файла
Здравствуйте! Я только начал работать с Java (Среда NetBeans IDE 7.3.1) и столкнулся с проблемой....


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru