我正在尝试创建一个程序,要求用户输入“名称”并检查以确保名称是字母的,不会太长,并且不在名为Unacceptable_Names的文件中包含不适当的名字)Python-读取和追加文件
为了确保程序的每个用户不使用相同的名称,当玩家输入名称时,我将它追加到Unacceptable_Names,然后当下一个玩家玩它时,如果它发生错误if他们在这个文件中输入一个名字。
下面的代码适用于已经在文件中创建的单词,但是当我重放并输入相同的名称时,我不会收到错误。有人可以帮助排除名称未被检查的原因吗?
def Char_Name(self,name):
string1=str(name).lower()
unacceptable_names=open("C://Users//Documents//Unacceptable_Names.txt", "r")
unacceptable_names2=open("C://Users//Documents//Unacceptable_Names.txt", "a")
names_list= []
for line in unacceptable_names.readlines():
for i in line.split(","):
names_list.append(i.strip())
if name.isalpha()==False:
print("You entered a name containing non-alphabetic characters, pease reenter a new name:")
main()
elif len(name)>=10:
print("You entered a name containing 10 or more characters, pease reenter a new name:")
main()
elif string1 in names_list:
print("You entered a name containing bad words or a name already in use! Try again.")
main()
else:
unacceptable_names2.write("\n"+str(name)+",")
unacceptable_names2.close()
self.character_name=name
这就像进入了一个名为“艾米丽”以后有什么unacceptable_names外观:如果输入给我一个错误席前与文件中的其他一些不好的话沿着所有这些]
皱海星, XX,XXX , YAOI, 黄色阵雨, yiffy, 动物恋, 艾米丽,
但是,如果我手动去到文本文件,并写入 “埃米莉” E xactly如何是上面的,它会给我我需要的错误信息。
*“我确实收到错误”*哪个错误?如果可能的话,请显示确切的错误信息,如果适当,则显示异常的完整堆栈跟踪。 – dhke
您是否在第一次停止播放后检查文件是否仍然存在? – tema
不,我说我没有得到一个错误 - 这是问题。该名称附加到文件中,但是当我重新启动程序(使用文件中的名称)时,尝试输入名称时没有出现错误。例如,我会第一次输入名字“Emily”。 Emily追加到文件中。如果我重新启动程序并再次输入“Emily”,我不会收到Emily已经在文件中的错误。 – Megan