Форум сайта python.su
Привет!
Подскажите пожалуйста, где я не прав?
#!/usr/bin/python3 import os os.system('cls' if os.name == 'nt' else 'clear') import random rnd = random.randint(1000,9999) # Создаем переменную с помощью генератора случайных чисел w_temp_file = open('/tmp/rnd', 'tw', encoding='utf-8') # Создаем временный файл с переменной 'rnd' r_temp_file = open('/tmp/rnd').read() # Переменная для чтения данных, с последующей передачей в другой файл nik_f = open('/etc/squid/lists/deny_list.txt', 'w') # Файл блокировок для Ника our_f = open('/etc/squid/lists/BlackList.txt', 'w') # Общий файл блокировок nik_ = '/etc/squid/lists/deny_list.txt' our_ = '/etc/squid/lists/BlackList.txt' ''' Данный цикл, позволяем добавить одну или несколько строк во временный файл ''' count = 1 while count <= 2: os.system('cls' if os.name == 'nt' else 'clear') print('============================================================================') print('|| ||') print('|| Вас приветствует мастер добавления web-ресурсов в файлы блокировок ||') print('|| ||') print('============================================================================') answer = input('Введите имя сайта' + '\n') w_temp_file.write("answer") count = int(input('Повторить? 1 - Да, 2 - Нет' + '\n')) if count == 1: continue elif count == 2: w_temp_file.close() break print(r_temp_file) ''' Этот цикл, позволяет выбрать, в какой файл блокировок добавить содержимое, созданного ранее, временного файла ''' count = int(input(''' Выбираем, в какой файл будем писать: 1 - Для Ника 2 - Общий 3 - Выход ''')) while count <= 3: if count == 1: nik_f.write("r_temp_file") nik_f.close() print("Запись произведена в файл - " + "nik_") elif count == 2: our_f.write("r_temp_file") our_f.close() print("Запись произведена в файл - " + "our_") elif count == 3: #count = 3 exit(0)
Офлайн
haloДай этим файлам разные имена. Не надо трогать один файл двумя open()'ами одновременно.w_temp_file = open('/tmp/rnd', 'tw', encoding='utf-8') # Создаем временный файл с переменной 'rnd' r_temp_file = open('/tmp/rnd').read() # Переменная для чтения данных, с последующей передачей в другой файл
haloВот это правильно, этому ты научился. Всё остальное - какой-то бред. Где ошибки? Везде ошибки.print('============================================================================') print('|| ||') print('|| Вас приветствует мастер добавления web-ресурсов в файлы блокировок ||') print('|| ||') print('============================================================================')
haloВот это что такое? Читаешь в переменную, а пишешь в файл строковой литерал.answer = input('Введите имя сайта' + '\n') w_temp_file.write("answer")
w_temp_file.write(answer)
Отредактировано py.user.next (Май 7, 2020 01:37:57)
Офлайн
а в чем собственно ошибка?
ну вот тут
while count <= 3:
count = int(input(''' Выбираем, в какой файл будем писать: 1 - Для Ника 2 - Общий 3 - Выход '''))
[code python][/code]
Отредактировано PEHDOM (Май 7, 2020 01:36:39)
Офлайн
py.user.nextПрошу не ругаться
Ошибки на уровне “не знаю, чем имя в питоне отличается от строки в питоне”. Читай книжку хотя бы одну какую-нибудь. В каждой книжке это объясняется на первых страницах.
PEHDOMОшибка, как уже указал py.user.next, в неправильной работе с файлами.
а в чем собственно ошибка?
Traceback (most recent call last):
File "./add_links.py", line 50, in <module>
nik_f.write("r_temp_file")
ValueError: I/O operation on closed file.
Отредактировано halo (Май 7, 2020 09:38:23)
Офлайн
В общем получилось, но только наполовину…
У меня запись производиться в нужный файл, но:
1. во временном файле сохраняется только последняя запись
2. при этом все в конечном файле затирается
Офлайн
Разобрался, Вопрос снят
Офлайн