Ошибка синтаксиса (Python)
Помогите исправить ошибку, данный код должен записывать в текстовый блокнот переменную rand, после чего test должен обновляться и переменная записываться заново в этот текстовый файл только с новой строчки.
код:
import random
from random import choice
from string import ascii_uppercase
import os
with open("C:\test.txt", "w", ) as file:
def test():
cs = random.randint(8,30)
symbols = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_'
rand = (''.join(choice(symbols) for i in range(cs)))
file.write(f"{rand}\n")
print(rand)
test()
test()
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Вы использовали with без тела внутри:
with open("C:\test.txt", "w", ) as file:
Замените это на присваивание:
file = open(r"C:\test.txt", "w")
Еще у вас тут бесконечная рекурсия:
def test():
...
test()
test()
Тут вообще не нужно рекурсивного вызова
Не понятно откуда aa берется в range(aa), скорее всего там должно быть значение cs
Я бы рекомендовал значение из функции возвращать и результат записывать в файл:
def test() -> str:
cs = random.randint(8,30)
symbols = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_'
return ''.join(choice(symbols) for _ in range(cs))
with open("C:\test.txt", "w", ) as file:
rand = test()
print(rand)
file.write(f"{rand}\n")