Как разделить текст знаком тире и ограничить количество знаков?
Подскажите, как разделить пароль знаком тире для лучшей читабельности пароля и ограничить количество знаков.
например:
q34sf2-As5Aer-56Q2rq
def password(): # Формат пароля
for n in range(int(number_entry.get())):
password = ' '
global x
x += 1
for i in range(int(length_entry.get())):
password += secrets.choice(chars)
if x <= 9:
calculated_text.insert(
END, "Пароль" + ' ' + str(x) + ': ' + password + "\n")
else:
calculated_text.insert(
END, "Пароль" + ' ' + str(x) + ': ' + password + "\n")
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Накидал такой алгоритм, попробуйте:
text = "q34sf2As5Aer56Q2rq"
piece_len = 6
new_text = '-'.join(
text[i: i+piece_len]
for i in range(0, len(text), piece_len)
)
print(new_text)
# q34sf2-As5Aer-56Q2rq
Для удобства использования оборачиваем в функцию:
def get_pretty_password(password: str, piece_len=6) -> str:
return '-'.join(
password[i: i + piece_len]
for i in range(0, len(password), piece_len)
)
text = "q34sf2As5Aer56Q2r"
new_text = get_pretty_password(text)
print(new_text)
print(get_pretty_password(text, piece_len=5))
Для ограничения длины пароля, можно сделать так:
max_len = 12
text = "q34sf2As5Aer56Q2rq"
text = text[:max_len]