permission deined и вторая ошибка 'tuple' has no attribute 'write' после правки выдаёт ошибку my_file.close() innendationerror
Bыдаёт несколько ошибок:
my_file = open("loveeI.txt", "w")пишетpermission denied
'tuple' has no attribute 'write'
from random import randint
while True :
my_file = open("loveeI.txt","w")
print(" Hi, my name is Robolove ")
print("Tell me two names ")
name1 = input(" First name - ")
name2 = input(" Second name - ")
my_file.write(name1)
my_file.write(name2)
x = randint(20,100)
print (x,"%")
if x > 70:
print("UUUU I SMELL LOVE")
else:
print("You can try")
if x > 50:
print("It's your choice")
else:
print("Try again, I could say something wrong ")
my_file.close()
# This code was made for fun. Don't take it serious
Ответы (2 шт):
PermissionDenied выдает потому что слишком часто открывается файл и система блокирует доступ.
Чтобы ее исправить воспользуйтесь менеджером with
from random import randint
with open('loveeI.txt','w') as my_file:
while True :
print(" Hi, my name is Robolove ")
print("Tell me two names ")
name1 = input(" First name - ")
name2 = input(" Second name - ")
my_file.write(name1)
my_file.write(name2)
x = randint(20,100)
print (x,"%")
if x > 70:
print("UUUU I SMELL LOVE")
else:
print("You can try")
if x > 50:
print("It's your choice")
else:
print("Try again, I could say something wrong ")
Прежде всем, ваша программа не скончается — ваш цикл бесконечный.
(Я напишу, как это исправить.)
Вы вероятно запустили вашу программу снова, пока ваша предыдущая (бесконечная) всё время непрерывно работала — с тем же самым файлом!
Потому ваша первая ошибка («permission denied»).
(Когда вы знаете как, окончите насильственно всё, что вы запускали, когда нет, просто сделайте, что пишу дальше.)
Ни каких ошибок ваша программа не выдала для меня. Но какие-то предложения:
Вместо
my_file = open("loveeI.txt","w")используйте
my_file = open("другое_имя.txt", "а")т.е. используйте какое-то другое имя (т.к. ваше первое заблокировано), и примените параметр
"a"(append) вместо"w"(write), чтобы всякий раз не переписывать ваш выводной файл (а только добавить записи за его конец).
Вместо
my_file.write(name1) my_file.write(name2)используйте
my_file.write(name1 + "\n") # "\n" - символ перехода на новую строку my_file.write(name2 + "\n")чтобы в выводном файле было всякое имя на своей строке — иначе всё будет только в одной.
Вместо
if x > 50: print("It's your choice") else: print("Try again, I could say something wrong ") my_file.close()(всё кроме последней строки только для контекста) используйте
if x > 50: print("It's your choice") else: print("Try again, I could say something wrong ") if name1 == "" and name2 == "": my_file.close() break # немедленный выход из цикла while Trueчтобы ваш бесконечный цикл, т.е. ваша игра, окончилась при нажатии только Enter для обоих имен.