我现在正在为用户名保存系统。当前变量如下所示:name = input(“您叫什么名字”)。我把它写到一个文本文件中。
我尝试将name设置为没有输入的变量,并尝试使输入成为write函数(idk为什么)。这些都不运气。
def welcome():
os.system('cls' if os.name == "nt" else 'clear')
print(color.color.DarkGray + "Welcome...")
sleep(5)
name = input("Enter Name Here: ")
name1 = name
saveUserInp = open("userNames.txt", 'w')
with open ("userNames.txt") as f:
f.write(name)
sleep(5)
print("Welcome",name1)
sleep(5)
menu()
上面提供的是欢迎功能的代码。
Traceback (most recent call last):
File "main.py", line 54, in <module>
welcome()
File "main.py", line 21, in welcome
f.write(name)
io.UnsupportedOperation: not writable
提供了给出的实际错误。第54行正在调用Welcome函数,该函数在我输入我的名字后中断。 f.write函数类似于21。我不确定为什么它不想将其写入文件。
答案 0 :(得分:2)
如果文件与读取的文件不同,则应打开文件以指定打开模式:
with open ("userNames.txt", "w") as f:
f.write(name)
open(未提供任何模式)默认情况下会以读取模式打开文件,这不足为奇。
顺便问一下,两次打开文件有什么意义?行
saveUserInp = open("userNames.txt", 'w')
...
saveUserInp.close()
由于使用with
语句打开文件,因此可能会被删除。