не записываются данные в файл. PYTHON
import random
import random_username
from random_username.generate import generate_username
print("==================== \n Генератор паролей \n====================\n \n")
passes = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' #База символов
logins = {'Emma', 'Watson', 'Richard', 'Karlson'}
number = int(input('> Количество паролей?'+ "\n "))
length = int(input('> Длина пароля?'+ "\n "))
TypeSave = int(input('> Выберите тип вывода \n 1 - Сохранение в текстовом документе \n 2 - Вывод в консоль '+ "\n "))
lengthlog = '2'
logins = generate_username(750000)
for n in range(number):
password =''
login = random.choice(logins)
for i in range(length):
password += random.choice(passes)
if TypeSave == 1:
with open('baza.txt', 'a', encoding = 'utf-8') as logmsg:
logmsg.write(f'{login}:{password}\n')
elif TypeSave == 2:
print(login, password)
else:
print("\n > Вы вели не существующий пункт")
Ответы (2 шт):
Ваш код кажется в целом правильным, и данные должны записываться в файл baza.txt при выборе типа сохранения равного 1. Возможно, есть проблемы с кодировкой или путем к файлу.
Проверьте следующие моменты:
Убедитесь, что файл
baza.txtсоздан в рабочем каталоге (где находится ваш скрипт). Если файл не существует, скрипт его создаст.Проверьте, есть ли у вас права на запись в текущий каталог.
Удостоверьтесь, что кодировка
'utf-8'правильная для вашей системы. Если у вас проблемы с кодировкой, попробуйте использовать'cp1251'для Windows или другую подходящую кодировку.Если у вас остаются проблемы, попробуйте добавить проверку на успешное открытие файла:
if TypeSave == 1:
try:
with open('baza.txt', 'a', encoding='utf-8') as logmsg:
logmsg.write(f'{login}:{password}\n')
except Exception as e:
print(f"Ошибка при записи в файл: {e}")
elif TypeSave == 2:
print(login, password)
else:
print("\n > Вы вели несуществующий пункт")
Таким образом, вы сможете получить дополнительную информацию о возможных проблемах при записи в файл.
у меня с этим кодом все работает, честно, я не понимаю в чем проблема, ведь ошибки не видел
import random
print("==================== \n Генератор паролей \n====================\n \n")
passes = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' # База символов
logins = ['Emma', 'Watson', 'Richard', 'Karlson']
number = int(input('> Количество паролей?' + "\n "))
length = int(input('> Длина пароля?' + "\n "))
TypeSave = int(input('> Выберите тип вывода \n 1 - Сохранение в текстовом документе \n 2 - Вывод в консоль ' + "\n "))
lengthlog = '2'
for n in range(number):
password = ''
login = random.choice(logins)
for i in range(length):
password += random.choice(passes)
if TypeSave == 1:
with open('baza.txt', 'a', encoding='utf-8') as logmsg:
logmsg.write(f'{login}:{password}\n')
elif TypeSave == 2:
print(login, password)
else:
print("\n > Вы вели не существующий пункт")
изменил с
logins = {'Emma', 'Watson', 'Richard', 'Karlson'}
на
logins = ['Emma', 'Watson', 'Richard', 'Karlson']
с записью проблем не было