我正在嘗試創建一個程序,要求用戶輸入「名稱」並檢查以確保名稱是字母的,不會太長,並且不在名爲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