Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 25.08.2021
Сообщений: 8

Ввод в файл переменной, содержащей русскоязычные символв

26.08.2021, 18:27. Показов 1248. Ответов 7

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, как ввести русский текст в файл. Я хочу чтобы пользователь мог сам задать значение переменной, которое будет содержать русскоязычные символы. При этом, даже после применение encode, в файле не отображается русский текст или вообще выходит ошибка.

Вот такой текст программы
Python
1
2
3
4
f=open("1.txt", 'a', encoding='utf-8') 
 a =str(input()) 
f. write(a) 
f. Close()
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.08.2021, 18:27
Ответы с готовыми решениями:

ввод тектовой переменной содержащей апостроф
Ребят Добрый день Помогите с SQL для Access нужно программно ввести в поле таблицы текстовую переменную содержащую апостроф...

Текстовый файл состоит не более чем из 10^6 символов A,B и C. Определите максимальное количество идущих подряд символв С
#include <iostream> #include <string> using namespace std; int main() { FILE *file; file =...

Ввод строки, содержащей несколько слов.
Здравствуйте, необходимо ввести строку, содержащую несколько слов из файла. Вот мой вариант: #include "stdafx.h" #include...

7
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
26.08.2021, 18:57
Alice Knight, python чувствителен к регистру символов, close(). Для этих целей используйте менеджер контекста with или через print() все можно записать, они сами закроют все файловые дескрипторы.
1
0 / 0 / 0
Регистрация: 25.08.2021
Сообщений: 8
28.08.2021, 22:27  [ТС]
Спасибо за совет, попробовала использовать with , но получается тоже самое. Когда открываю файл там не отображаются русские буквы. А как можно применить print, если делать вывод именно в файл?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
28.08.2021, 22:53
Цитата Сообщение от Alice Knight Посмотреть сообщение
Когда открываю файл там не отображаются русские буквы.
Чем ты его открываешь?
Открывать нужно нормальным текстовым редактором, в котором есть менюшка для указания кодировки чтения файла.
Ты пишешь файл в utf-8, а редактор его читает, например, в windows-1251 - кодировке по умолчанию для русскоязычной windows.
Нужно же понимать, что текстовые редакторы кодировку не угадывают (нет, наверно, есть такие, но даже в них этот режим будет не основным, так как детектирование кодировки требует определенной задержки перед открытием файла) - они открывают файл в той кодировке, которая использовалась при его открытии в последний раз, либо, если это первое открытие, используют кодировку по умолчанию, которая указана в настройках редактора. Если же и таких настроек нет, то кодировка системы.
0
0 / 0 / 0
Регистрация: 25.08.2021
Сообщений: 8
28.08.2021, 22:59  [ТС]
Я открываю его в блокноте, но дело даже не в этом. Я создавала разные файлы с разными кодировками в том числе и с cp1251, указывала соответствующую кодировку в самой программе, но при этом, когда я писала на вывод в файл конкретную цитату, все получалось - текст правильно считывался. А если создать переменную непосредственно и пользователь будет задавать новое значение, которое потом будет выводится в файл, оно не считается. Надеюсь, понятно объясняю, просто нигде в интернете не могу найти конкретного решения;(
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
28.08.2021, 23:04
Цитата Сообщение от Alice Knight Посмотреть сообщение
просто нигде в интернете не могу найти конкретного решения;(
Нет никакого особого решения.
Либо ты открываешь файл в правильной кодировке (той, которая использована при записи), либо нет.
Блокнот открывает файл в windows-1251. Забудь про него.

P.S. Еще ты делаешь append в файл, то есть дозапись. А какая у файла была изначальная кодировка?
И, вообще, нужно было сразу прикладывать сюда файл аттачем, что никто не гадал.
0
0 / 0 / 0
Регистрация: 25.08.2021
Сообщений: 8
28.08.2021, 23:42  [ТС]
А разве txt файл может быть только в ср-1251? Я с помощью акелпада задавала ему другие.
Но все равно вот прикрепляю файл - вариант программы где работа идет над txt файлом в обычной ср- 1251 кодировке.
Вложения
Тип файла: txt Копия -2.txt (127 байт, 5 просмотров)
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
29.08.2021, 12:13
Alice Knight,
Да не python файл нужен. А txt файл в котором у тебя кракозябры.

Python
1
# -*- coding: cp1251 -*-
А это в Python файле вообще не нужно.

Зачем ты это пишешь?
Кстати, из-за этого как раз у тебя скорей всего проблема.
Python по умолчанию использует utf-8 для кодировки ввода и не нужно это менять.
P.S. У тебя полный бардак в голове по части кодировок. Нужно начать понимать что это и как ими пользоваться.

P.P.S. Проблемы с вводом из консоли и выводом в windows консоль кириллицы у Python были до версии 3.6. Начиная с нее для ввода и вывода используется исключительно юникод и должно быть все нормально. Для более ранних версий Python можно использовать специальный модуль для автоматического перекодирования win_unicode_console.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.08.2021, 12:13
Помогаю со студенческими работами здесь

Запись формулы , содержащей значение переменной
Dim v As Integer Dim pro As Range For i = 1 To UBound(part) ' цикл по всему количеству заменяемых...

Каков тип переменной, содержащей дробное число
К какому типу данных должна относится переменная, чтобы можно было ей присвоить число, которое получается в результате деления 4 на 6 ? ...

Какое поле у структурной переменной содержащей указатель?
Добрый день! Только учу С++. И, вот , возник вопрос. Обычная структура, например. struct sct { int d; int f; } sct s; ...

Передача переменной,содержащей путь в src картинки
Это функция предварительного просмотра и вывода его на стр через table function preview() { var name =...

Передача переменной содержащей двойные кавычки из PHP в JS
Проблема в следующем: создаю массив строк. Строки формируются из различных переменных. А вот при передаче переменной $arElementNAME (Она...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
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
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru