Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 30, 2018 14:48:41

Dan1231
Зарегистрирован: 2018-06-30
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с чтением файла в командной строке (Python)

Здравствуйте, у меня возникла проблема с кодом, при выводе в командную строку текстового файла , вместо букв выводятся иероглифы.Перепробовал все советы, но проблема осталась.Операционная система Windows.

 # -*- coding: utf -8 -*-
from sys import argv
script, filename = argv
txt = open(filename)
print u"Содержимое файла %r:" % filename
print txt.read()
print u"Введите имя файла снова:"
file_again = raw_input("> ")
txt_again = open(file_again)
print txt_again.read()

Отредактировано Dan1231 (Июнь 30, 2018 14:59:02)

Прикреплённый файлы:
attachment ex15.py (321 байт)

Офлайн

#2 Июль 2, 2018 19:12:45

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Проблема с чтением файла в командной строке (Python)

предположительно виндовс в командной строке имеет кодировку cp866 а в обычной среде cp1251
Таким образом - каждую считанную строку из файла перед выводом в кончоль надо транскодировать.
encode('cp1251').decode('cp866')
Это примерно. Далее в гугле найдете море примеров по запросу
Python Windows вывод в консоль.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Июль 3, 2018 11:21:18

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 325
Репутация: +  13  -
Профиль   Отправить e-mail  

Проблема с чтением файла в командной строке (Python)

ZerG
Начало » Python для новичков » Проблема с чтением файла в командной строке (Python)

#1 Июнь 30, 2018 14:48:41
Даже если с “cp1251” не получится, вторая (многие текстовые редакторы в Windows выбирают ее как дефултную) дефултная в Windows и еще самая популярная 8-bit'ная кодировка это ANSI(cp1252).



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version