Содержание
- Syntax error non ascii character xd0 in file
- Комментарии ( 1 )
- Оставьте свой комментарий
- Интересные статьи:
- gornostal / Unicode.md
- unixforum.org
- Русский язык в питоне (начал учить.)
- Русский язык в питоне
- Re: Русский язык в питоне
- Re: Русский язык в питоне
- Re: Русский язык в питоне
- Re: Русский язык в питоне
- Re: Русский язык в питоне
- Re: Русский язык в питоне
- Re: Русский язык в питоне
- Re: Русский язык в питоне
- Re: Русский язык в питоне
- Re: Русский язык в питоне
- Re: Русский язык в питоне
- Re: Русский язык в питоне
- Python-сообщество
- Уведомления
- #1 Июнь 30, 2010 21:58:27
- Кодировка UTF8
- #2 Июнь 30, 2010 22:10:31
- Кодировка UTF8
- #3 Июнь 30, 2010 23:11:02
- Кодировка UTF8
- #4 Июнь 30, 2010 23:19:47
- Кодировка UTF8
- #5 Июль 1, 2010 04:07:45
- Кодировка UTF8
- #6 Июль 1, 2010 09:02:02
- Кодировка UTF8
- #7 Июль 1, 2010 09:16:59
- Кодировка UTF8
- #8 Июль 1, 2010 11:36:20
- Кодировка UTF8
- Ecipse не принимает кирилицу. Как это решить? Не писать же комментарии на английском!?
Syntax error non ascii character xd0 in file
Для того, чтобы использовать в скриптах питона кириллические символы, нужно:
1. Использовать кодировку UTF-8 для скриптов.
2. В начале каждого PY-флайла добавить 2 строчки:
И будет счастье! 🙂
В противном случае при запуске скрипта могут возникать ошибки с текстом типа:
SyntaxError: Non-ASCII character ‘xd0’ in file /Users/user/projects/Python/Task1/MQ.py on line 15, but no encoding declared; .
Чаще всего ошибка Non-ASCII character ‘xd0’ возникает при использовании различных IDE, типа JetBrains PyCharm и т.п., если в тексте скрипта содержатся русские символы. Причем, не важно, где написаны русские буквы — в исполняемом участке кода или в комментарии — ошибка будет в обоих случаях.
Комментарии ( 1 )
У меня выводятся не кириллические символы, а их байтовая репрезентация, например:
Как с этим бороться?
Оставьте свой комментарий
- Опубликовать комментарий как Гость.
Интересные статьи:
Ошибки Jeppesen FD PRO — Показывает видео
Чем сложнее система, тем больше вероятность ее отказа. Чем сложнее программа, тем больше в ней может быть глюков, багов и косяков. Понятно, что каждый разработчик ПО старается свести к минимуму все глюки, но предусмотреть все и смоделировать все возможные ситуации просто не реально. Ошибки бывают не значительные, существенные и критические. В зависимости от типа выявленной ошибки на программу и.
Полезные штуки для макбука/ноутбука
Пользователям Macbook, кроме компьютера необходимо иметь еще кое-какие штуки, чтобы эксплуатация «серого друга» была максимально продуктивной и комфортной. Начнем с параметра «Сохранность», так как это самое важное 🙂
Культ карго
На островах Тихого океана местные жители поклоняются самолетам, которые привозят разные ништяки и вкусняшки. А чтобы боги прилетали почаще, строят фальшивые аэродромы с муляжами самолетов, вышек и взлетными полосами.
Как сменить IP-адрес при подключении через DLINK DIR-300
Интернет-провайдер билайн присваивает своим пользователям динамические IP-адреса. В этом, конечно, есть свои минусы, ведь не зря статический IP-адрес дается за отдельную плату. Но лично я считаю, что динамический IP-адрес гораздо удобнее для Интернет-серфинга. Во-первых, скачивая с некоторых файлообменников (рапидшара, депозитфайлз и им подобные), не нужно ждать, когда закончится тайм-аут до.
Удалить копирайт jcomments
При использовании различных систем управления сайтами (CMS — Content Management System), например, Joomla, WordPress или других, часто вебматера устанавливают дополнительные расширения (компоненты, модули, плагины), необходимыми для полноценного функционирования сайта. При этом, многие расширения отображают на страницах сайта, ссылку на сайт создателя этого расширения. С одной стороны, это.
Что такое UDID и как его узнать для своего устройства?
UDID (Unique Device Identifier) — уникальный идентификатор устройства, состоящий из 40 символов. Он есть у каждого мобильного i-устройства: iPad, iPhone или iPod Touch. UDID может использоваться, например, для бета-тестирования программ. Вы предоставляете разработчику программы свой UDID, он же, в свою очередь, предоставляет вам приложение для бета-тестирования.
Как показать GPS-трек на Яндекс-картах
Если вы проложили маршрут до некой точки, записав для этого GPS-трек, и вам необходимо публично поделиться этой информацией — как проехать до этого места назначения (охотничий домик, турбаза в лесу далеко за городом или просто домик в маленькой деревне в глухой провинции, и др. ), то вы обязательно захотите показать этот трек на карте. Вариантов тут может быть несколько, а основных только два: используя.
Источник
gornostal / Unicode.md
Python 2.7. Unicode Errors Simply Explained
I know I’m late with this article for about 5 years or so, but people are still using Python 2.x, so this subject is relevant I think.
Some facts first:
- Unicode is an international encoding standard for use with different languages and scripts
- In python-2.x, there are two types that deal with text.
- str is an 8-bit string.
- unicode is for strings of unicode code points.
A code point is a number that maps to a particular abstract character. It is written using the notation U+12ca to mean the character with value 0x12ca (4810 decimal)
- Encoding (noun) is a map of Unicode code points to a sequence of bytes. (Synonyms: character encoding, character set, codeset). Popular encodings: UTF-8, ASCII, Latin-1, etc.
- Encoding (verb) is a process of converting unicode to bytes of str , and decoding is the reverce operation.
- Python 2.x uses ASCII as a default encoding. (More about this later)
SyntaxError: Non-ASCII character
When you sees something like this
you just need to define encoding in the first or second line of your file. All you need is to have string coding=utf8 or coding: utf8 somewhere in your comments. Python doesn’t care what goes before or after those string, so the following will work fine too:
Notice the dash in utf-8. Python has many aliases for UTF-8 encoding, so you should not worry about dashes or case sensitivity.
str() function encodes a string. We passed a unicode string, and it tried to encode it using a default encoding, which is ASCII. Now the error makes sence because ASCII is 7-bit encoding which doesn’t know how to represent characters outside of range 0..128.
Here we called str() explicitly, but something in your code may call it implicitly and you will also get UnicodeEncodeError .
How to fix: encode unicode string manually using .encode(‘utf8’) before passing to str()
Let’s say we somehow obtained a byte string byte_string which contains encoded UTF-8 characters. We could get this by simply using a library that returns str type.
Then we passed the string to a function that converts it to unicode . In this example we explicitly call unicode() , but some functions may call it implicitly and you’ll get the same error.
Now again, Python uses ASCII encoding by default, so it tries to convert bytes to a default encoding ASCII. Since there is no ASCII symbol that converts to 0xc3 (195 decimal) it fails with UnicodeDecodeError .
How to fix: decode str manually using .decode(‘utf8’) before passing to your function.
Make sure your code works only with Unicode strings internally, converting to a particular encoding on output, and decoding str on input. Learn the libraries you are using, and find places where they return str . Decode str before return value is passed further in your code.
Источник
unixforum.org
Форум для пользователей UNIX-подобных систем
- Темы без ответов
- Активные темы
- Поиск
- Статус форума
Русский язык в питоне (начал учить.)
Русский язык в питоне
Сообщение Vas » 24.07.2007 00:12
Как такую штуку лечить? просто в русских программах на питоне. Например Эксаил или Гаджим все нормально.
Re: Русский язык в питоне
Сообщение Liksys » 24.07.2007 00:21
Re: Русский язык в питоне
Сообщение moog » 24.07.2007 00:44
Re: Русский язык в питоне
Сообщение Vas » 24.07.2007 01:00
Re: Русский язык в питоне
Сообщение edoc_modnar » 24.07.2007 01:09
Re: Русский язык в питоне
Сообщение Vas » 24.07.2007 02:10
Re: Русский язык в питоне
Сообщение Liksys » 24.07.2007 02:15
Re: Русский язык в питоне
Сообщение Vas » 24.07.2007 02:49
Re: Русский язык в питоне
Сообщение Vas » 24.07.2007 02:55
Re: Русский язык в питоне
Сообщение edoc_modnar » 24.07.2007 03:26
Re: Русский язык в питоне
Сообщение plustilino » 24.07.2007 06:26
Re: Русский язык в питоне
Сообщение Vas » 26.07.2007 21:42
Ну не повезло мне в школе с английским языком, то может вообще ничем не заниматся и сидеть в винде?
когда в винде был программировал в дельфи, довольно неплохо. ушел в линукс учу питон. пусть без английского сложно, но все же можно.
В общем всем спасибо. Тему можно закрыть.
Re: Русский язык в питоне
Сообщение edoc_modnar » 26.07.2007 21:59
Ну не повезло мне в школе с английским языком, то может вообще ничем не заниматся и сидеть в винде?
когда в винде был программировал в дельфи, довольно неплохо. ушел в линукс учу питон. пусть без английского сложно, но все же можно.
Источник
Python-сообщество
Уведомления
#1 Июнь 30, 2010 21:58:27
Кодировка UTF8
У меня проблема с кириллицой в кодировке UTF8
SyntaxError: Non-ASCII character ‘xd0’ in file ./fff.py on line 4, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Я так понял, что UTF8 не совместим с кирилицой.
Что делать?
Отредактировано (Июнь 30, 2010 22:00:34)
#2 Июнь 30, 2010 22:10:31
Кодировка UTF8
Вы неправильно поняли. Вы ходили по ссылке?
Это значит что надо указать кодировку файла, как там указано.
#3 Июнь 30, 2010 23:11:02
Кодировка UTF8
#4 Июнь 30, 2010 23:19:47
Кодировка UTF8
#!/usr/bin/python
# -*- coding: utf8 -*-
Все равно выдает ошибку
File “./fff.py”, line 3
SyntaxError: ‘utf8’ codec can’t decode bytes in position 0-1: invalid data
Не легче вам подсказать, какой кодировкой пользоваться?
Отредактировано (Июнь 30, 2010 23:20:46)
#5 Июль 1, 2010 04:07:45
Кодировка UTF8
научитесь сохранять в кодировке utf8.
Юзайте правильные IDE.
#6 Июль 1, 2010 09:02:02
Кодировка UTF8
Всем. Кстати, а как Python и Bash (и др. sh-ы) работают с BOM? Хотя данный случай не тот, но всё же не задумывался раньше над такой возможной проблемой.
Автору. Если интерпретатору указать в начале файла что он сохранён в utf-8, это не значит что он действительно сохранён в utf-8. Есть подозрения что файл сохранён в кодировке cp1251 (может koi8-r).
p.s. Можно уже показать этот файл (первые строки), только не copy-paste, а выложить оригинал где-нибудь или в hex-кодах здесь (первые нцать строк), если вы не в состоянии сами определить в какой кодировке у вас этот модуль сохранён.
Отредактировано (Июль 1, 2010 09:04:16)
#7 Июль 1, 2010 09:16:59
Кодировка UTF8
bw
Всем. Кстати, а как Python и Bash (и др. sh-ы) работают с BOM
#8 Июль 1, 2010 11:36:20
Кодировка UTF8
Я имел ввиду исходник, сам модуль. Так эти символы недопустимы в utf-8, то ругается ли он при компиляции/выполнении на них?
Источник
Ecipse не принимает кирилицу. Как это решить? Не писать же комментарии на английском!?
print(«Hello»)
print(«Ny chto eto. «)
print(«Hello World. «)
pydev debugger: starting
Hello
Ny chto eto.
Hello World.
print(«Ну а по русски»)
pydev debugger: starting
Traceback (most recent call last):
File «/home/alex/ECLIPSE/eclipse/plugins/org.python.pydev_3.3.3.201401272249/pysrc/pydevd.py», line 1738, in
debugger.run(setup[‘file’], None, None)
File «/home/alex/ECLIPSE/eclipse/plugins/org.python.pydev_3.3.3.201401272249/pysrc/pydevd.py», line 1355, in run
pydev_imports.execfile(file, globals, locals) # execute the script
File «/home/alex/workspace/New_1/src/Test.py», line 1
SyntaxError: Non-ASCII character ‘xd0’ in file /home/alex/workspace/New_1/src/Test.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Что с этим делать? UTF-8 Везде установил вроде бы. Даже в eclipse.ini добавил строку
-Dfile.encoding=UTF-8
По этой ссылке http://habrahabr.ru/post/167559/ пытался . :'(
Пишите попроще.
print(u«Ну а по русски»)
А так? Судя по ошибке ругается на попытку печати юникода.
#!/usr/bin/env python
#-*- coding:utf-8 -*-
Источник
Python 2.7. Unicode Errors Simply Explained
I know I’m late with this article for about 5 years or so, but people are still using Python 2.x, so this subject is relevant I think.
Some facts first:
- Unicode is an international encoding standard for use with different languages and scripts
- In python-2.x, there are two types that deal with text.
str
is an 8-bit string.unicode
is for strings of unicode code points.
A code point is a number that maps to a particular abstract character. It is written using the notation U+12ca to mean the character with value 0x12ca (4810 decimal)
- Encoding (noun) is a map of Unicode code points to a sequence of bytes. (Synonyms: character encoding, character set, codeset). Popular encodings: UTF-8, ASCII, Latin-1, etc.
- Encoding (verb) is a process of converting
unicode
to bytes ofstr
, and decoding is the reverce operation. - Python 2.x uses ASCII as a default encoding. (More about this later)
SyntaxError: Non-ASCII character
When you sees something like this
SyntaxError: Non-ASCII character 'xd0' in file /tmp/p.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
you just need to define encoding in the first or second line of your file.
All you need is to have string coding=utf8
or coding: utf8
somewhere in your comments.
Python doesn’t care what goes before or after those string, so the following will work fine too:
# -*- encoding: utf-8 -*-
Notice the dash in utf-8. Python has many aliases for UTF-8 encoding, so you should not worry about dashes or case sensitivity.
UnicodeEncodeError
Explained
>>> str(u'café') Traceback (most recent call last): File "<input>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode character u'xe9' in position 3: ordinal not in range(128)
str()
function encodes a string. We passed a unicode
string, and it tried to encode it using a default encoding, which is ASCII. Now the error makes sence because ASCII is 7-bit encoding which doesn’t know how to represent characters outside of range 0..128.
Here we called str()
explicitly, but something in your code may call it implicitly and you will also get UnicodeEncodeError
.
How to fix: encode unicode
string manually using .encode('utf8')
before passing to str()
UnicodeDecodeError
Explained
>>> utf_string = u'café' >>> byte_string = utf_string.encode('utf8') >>> unicode(byte_string) Traceback (most recent call last): File "<input>", line 1, in <module> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 3: ordinal not in range(128)
Let’s say we somehow obtained a byte string byte_string
which contains encoded UTF-8 characters. We could get this by simply using a library that returns str
type.
Then we passed the string to a function that converts it to unicode
. In this example we explicitly call unicode()
, but some functions may call it implicitly and you’ll get the same error.
Now again, Python uses ASCII encoding by default, so it tries to convert bytes to a default encoding ASCII. Since there is no ASCII symbol that converts to 0xc3
(195 decimal) it fails with UnicodeDecodeError
.
How to fix: decode str
manually using .decode('utf8')
before passing to your function.
Rule of Thumb
Make sure your code works only with Unicode strings internally, converting to a particular encoding on output, and decoding str
on input.
Learn the libraries you are using, and find places where they return str
. Decode str
before return value is passed further in your code.
I use this helper function in my code:
def force_to_unicode(text): "If text is unicode, it is returned as is. If it's str, convert it to Unicode using UTF-8 encoding" return text if isinstance(text, unicode) else text.decode('utf8')
Source: https://docs.python.org/2/howto/unicode.html
- Печать
Страницы: [1] Вниз
Тема: Кириллица в Python (Прочитано 19572 раз)
0 Пользователей и 1 Гость просматривают эту тему.
flowers
См. выше Как?
#!/usr/bin/python
s=unicode(«Как дела?»,»utf-8″)
print s
Выдает ошибку
SyntaxError: Non-ASCII character ‘xd0’ in file ./python.py on line 2, but no encoding declared
« Последнее редактирование: 09 Мая 2010, 10:17:44 от flowers »

VolCh
#!/usr/bin/python
# -*- coding: utf-8 -*-
...
flowers
Хмммм Сенкс
Люблю этот [censored] форум!!!
—
Предупреждение 1: мат
— kwah
« Последнее редактирование: 12 Мая 2010, 06:03:22 от Kwah »

blindvic
Гмммм
![]()
Питону надо указать в какой кодировке написан исходник. По умолчанию — ASCII, а в 3 — UTF-8
flowers
Я только начала его изучать. Когда-то давно увлекалась программированием. В школе Basic, в универе Pascal. Вот и решила вспомнить былое.

VolCh
Питону надо указать в какой кодировке написан исходник. По умолчанию — ASCII, а в 3 — UTF-8
3-й UTF-8 тоже не всегда понимает по умолчанию

truegeek

gagarin
print u'Как дела?'
так тоже можно, но желательно
# -*- coding: utf-8 -*-
2 Floawers милая дама пожалуйста не ругайтесь более
« Последнее редактирование: 10 Мая 2010, 22:27:19 от gagarin »
asus k40ij + ubuntu 10.04

$oft
я вот тоже питон начинаю… вот что я понял, это то, что 3 версия координально от 2 отличается.
3я вроде бы продвинутее: юникод и всё такое, но синтаксис немного другой — для начала очень проблемно разбираться в разных вариациях синтаксиса. Кроме того к 3 версии еще слабо прикрутили всякие модули, взять хотябы qt4…
несмотря на то что за питоном3 будущее, начать всётаки лучше со 2й версии…
…ИМХО
Yii2 (php7) + JS/JQ fullstack web developer
+79208111170 telegram

VolCh
Имхо, смотря с какой целью изучать — если asap приступать к разработке продукта «на продажу», то лучше 2.6, если с академическими целями, разработка «для себя» или на дальнюю перспективу, то 3

$oft
да в том то и дело что 3 щас проблемно изучать, ибо фича новая и модули к ней как надо не привинтили…
а общие принципы во 2 можно узнать…
Yii2 (php7) + JS/JQ fullstack web developer
+79208111170 telegram

truegeek
да в том то и дело что 3 щас проблемно изучать, ибо фича новая и модули к ней как надо не привинтили…
а общие принципы во 2 можно узнать…
ну не знаю, я купил 3 книги по питону 3 редакции O’REILLY и очень доволен… GUI морды пишу на TTK, а остальной инструментарий и так устраивает.
но это все для себя… так что уровень у меня средний, может на более высоких скилах 3-й и не тянет

alexander.pronin
Любую задачу можно решить несколькими способами или смешанным стилем.
Знание разных языков очень полезно.
Когда требуется все сделать на одном языке (чисто из любви к искусству или из вышестоящих требований) и не мешать кучу всего вместе.
Тогда и возникает углубленное изучение конкретных фичей конкретного языка.
А в общем виде, заморачиваться не стоит. Как проще, так и надо делать, мсм.
- Печать
Страницы: [1] Вверх
Уведомления
- Начало
- » Python для новичков
- » Проблема с использованием shutil
#1 Апрель 18, 2015 15:28:38
Проблема с использованием shutil
#!/usr/bin/python # -*- coding: utf-8 -*- import sys, os.path, shutil img = sys.argv[1] dir_ = sys.argv[2] date = "11.11.2014" for root, dirs, files in os.walk(dir_): if date in dirs: shutil.copy2(img, os.path(dir_, date)) else: print "err"
Надо скопировать фото в папку с именем 11.11.2014, которая в dir_
так вызываю скрипт:
python test_shutil.py 20141111_191402.jpg testdir
File “test_shutil.py”, line 12
SyntaxError: Non-ASCII character ‘xd0’ in file test_shutil.py on line 12, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Что не так с copy2?
Офлайн
- Пожаловаться
#2 Апрель 18, 2015 17:20:10
Проблема с использованием shutil
shutil.copy2(img, os.path.join(dir_, date))
Офлайн
- Пожаловаться
#3 Апрель 18, 2015 19:27:01
Проблема с использованием shutil
werter
shutil.copy2(img, os.path.join(dir_, date))
Да, join забыла. Но ошибка с Non-ASCII не убирается
Офлайн
- Пожаловаться
#4 Апрель 18, 2015 20:00:09
Проблема с использованием shutil
l1nx
SyntaxError: Non-ASCII character ‘xd0’ in file test_shutil.py on line 12
Я в полном замешательстве. Ошибка в наличии не ASCII символа в строчке 12, однако в предъявленном исходнике 11 строк, и кодировка исходника задана. Вы точно один и тот же скрипт запускаете и правите?!
Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…
Отредактировано PooH (Апрель 18, 2015 20:00:55)
Офлайн
- Пожаловаться
#6 Апрель 18, 2015 22:50:30
Проблема с использованием shutil
Прикрепи файл с диска к сообщению.
l1nx
SyntaxError: Non-ASCII character ‘xd0’ in file test_shutil.py on line 12, but no encoding declared
Тут два противоречия: во-первых, он говорит, что в исходном файле есть байт xd0, когда его нет, а во-вторых, он говорит, что кодировка не указана, когда она указана.
Так что, возможно, ты потеряла что-то при копировании кода из файла на форум.
Отредактировано py.user.next (Апрель 18, 2015 22:51:14)
Офлайн
- Пожаловаться
#7 Апрель 19, 2015 13:02:17
Проблема с использованием shutil
Разобралась с кодировкой и своей криворукостью.
Теперь что-то не так с логикой выполнения кода. Фото копируется в папку и выводится err
http://i.imgur.com/HOQUTk6.png
Офлайн
- Пожаловаться
#8 Апрель 19, 2015 14:36:11
Проблема с использованием shutil
Запускаешь через
хотя сверху написан способ запуска:
Надо просто добавить право выполнения на скрипт и запускать через
и писать не так прямо, а через env:
потому что питона в /usr/bin может не оказаться.
l1nx
Фото копируется в папку и выводится err
Потому что os.walk() так работает — спускается в подпапки.
>>> import os >>> >>> w = os.walk('prog') >>> next(w) ('prog', ['practice', 'info', 'projects'], ['.directory']) >>> next(w) ('prog/practice', ['c', 'info'], ['.directory']) >>>
Отредактировано py.user.next (Апрель 19, 2015 14:43:09)
Офлайн
- Пожаловаться
#9 Апрель 19, 2015 20:36:33
Проблема с использованием shutil
py.user.next
Ок. Сделала так
#!/usr/bin/env python import sys, os.path, shutil img = sys.argv[1] dir_ = sys.argv[2] date = "11.11.2014" for root, dirs, files in os.walk(dir_): if date in dirs: shutil.copy2(img, os.path.join(dir_, date)) else: print "err" break
Офлайн
- Пожаловаться
- Начало
- » Python для новичков
- » Проблема с использованием shutil