Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2019, 14:11   #1
Exalted
Пользователь
 
Регистрация: 27.08.2018
Сообщений: 31
По умолчанию Чтение и перезапись файлов

Есть у меня файл aaa.txt. В нём записано следующее:
vasyazzc-8113372
vasyasajid
vasyandy
vasyajean1
vasyabikk
vasya21
vasya18
vasya17
vasya10
vasya1
vasya
savasya
novasya
nevasya
iluvasya
akivasya
4evasyafiq

Далее я запускаю другую программу чтобы пронумеровать это:
Код:
a = open("aaa.txt", "a", encoding = "latin_1")

for x, i in enumerate(a, 1):
	print("Password N " + str(x) + ": " + i.strip())

a.close()
И мне выдаёт эту ошибку:
Traceback (most recent call last):
File "F:\collection of soft\test2.py", line 3, in <module>
for x, i in enumerate(a, 1):
io.UnsupportedOperation: not readable


______________________
Используйте тег [CODE] (кнопка [CODE] в форме сообщения) при вставке кода на форум. Подробнее в FAQ

Последний раз редактировалось Alex11223; 03.01.2019 в 14:40.
Exalted вне форума Ответить с цитированием
Старый 03.01.2019, 14:40   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

https://docs.python.org/3/library/functions.html#open
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 03.01.2019, 15:10   #3
Exalted
Пользователь
 
Регистрация: 27.08.2018
Сообщений: 31
По умолчанию

Это не решило мою проблему. Я перепробовал все моды для открытия.
Exalted вне форума Ответить с цитированием
Старый 03.01.2019, 16:34   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Какие? Как пробовали? Что выдавало?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 03.01.2019, 18:29   #5
Exalted
Пользователь
 
Регистрация: 27.08.2018
Сообщений: 31
По умолчанию

Ну, например если использовать мод r, то в консоль выводится всё правильно:
Password N 1: vasyazzc-8113372
Password N 2: vasyasajid
Password N 3: vasyandy
Password N 4: vasyajean1
Password N 5: vasyabikk
Password N 6: vasya21
Password N 7: vasya18
Password N 8: vasya17
Password N 9: vasya10
Password N 10: vasya1
Password N 11: vasya
Password N 12: savasya
Password N 13: novasya
Password N 14: nevasya
Password N 15: iluvasya
Password N 16: akivasya
Password N 17: 4evasyafiq

Но я хочу чтобы оно сохранялось в этом файле.
Если использую w, то оно полностью удаляет содержимое txt файла. Также пробовал комбинировать моды и это не помогло. Ошибка та же.
Exalted вне форума Ответить с цитированием
Старый 03.01.2019, 18:49   #6
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
По умолчанию

Текстовый файл нельзя читать и писать одновременно. Либо сначала считываете в память, затем перезаписываете новыми данными, либо считываете из одного и сразу построчно записываете в новый файл, по окончании первый удаляете, второй переименовываете в имя первого.

Последний раз редактировалось jillitil; 03.01.2019 в 18:58.
jillitil вне форума Ответить с цитированием
Старый 03.01.2019, 18:59   #7
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Посоветую вам почитать о правилах работы с текстовыми файлами.

Вы пытаетесь модифицировать файл, который открыт для чтения - модификатор "r".
Если будете использовать модификатор "a", то это для добавления в конец файла, но в этом случае указатель устанавливается в конец файла и вы можете только добавлять.
Модификатор "w" создаст новый файл.
Не модифицируйте текстовый файл, открытый для чтения.
Прочитайте строки, создайте нужный вам список, закройте файл с которым вы работали в режиме чтения, а затем вновь откройте его в режиме "a" и допишите ранее полученный список.

PS: Конечно, я могу и заблуждаться, ...
PSS: Вполне возможно, что такой файл может быть открыт с модификатором "+", но вот как с ним быть при работе с текстовым файлом ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 04.01.2019, 14:33   #8
Exalted
Пользователь
 
Регистрация: 27.08.2018
Сообщений: 31
По умолчанию

Цитата:
Сообщение от jillitil Посмотреть сообщение
считываете в память
Как считывать в память? Построчно? Через цикл? Расскажите подробнее пожалуйста

Последний раз редактировалось Exalted; 04.01.2019 в 14:38.
Exalted вне форума Ответить с цитированием
Старый 04.01.2019, 15:33   #9
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
По умолчанию

Цитата:
Сообщение от Exalted Посмотреть сообщение
Как считывать в память?
Как вам удобно. Например создаёте массив строк; построчно читаете из файла в каждый элемент массива пока не достигнете конца файла. Далее как написано выше.
jillitil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перезапись файлов используя BAT JUDAS Операционные системы общие вопросы 7 20.01.2017 16:53
Чтение файлов Delphi Kostyan.J Помощь студентам 0 11.06.2012 12:12
чтение файлов Neymexa Общие вопросы .NET 2 07.04.2009 11:03
Чтение файлов с диска Wolf-alone Общие вопросы C/C++ 1 17.09.2008 10:05