如何检查用户输入是否已存在于文本文件中python
问题描述:
如何检查输入是否已存在于文本文件中?如何检查用户输入是否已存在于文本文件中python
def Database():
file=open("Database.txt","a")
print("Welcome to Database")
name=input("Enter your name\n")
username=input("Enter your username\n")
password=input("Enter your password\n")
date=input("Enter the date\n")
while True:
if username in file():
print("Already exists")
username=input("Enter your username\n")
else:
file.write(name)
file.write("\n")
file.write(username)
file.write("\n")
file.write(password)
file.write("\n")
file.write(date)
file.write("\n")
file.close()
Database()
答
既然你需要将文件几次的搜索,直到客户进入一个新的用户名,我建议你闯入步骤如下:
- 文件读入到您方便的数据结构,某种用户名表。关闭文件。
- 当客户输入名称时,可以使用的运算符来检查现有名称的列表。
- 获得新信息后,再次打开文件以“附加”,并将新信息添加到文件中。
这让你感动吗?
+0
ok将它附加到文件好的,谢谢我将为用户名创建一个数组 – tojas
答
- 从头到尾读取文件并将其保存在列表中。
由于您要检查多次,最好将整个列表保存在一行csv文件中。 这会减少读取时间。
然后只需检查用户名是否在csv文件中。
添加以下代码片段并根据需要进行更改。
import csv
alreadyIn=[]
with open('data.csv', 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
alreadyIn.append(row[0])
with open('data.csv', 'w+') as csvfile:
writer = csv.writer(csvfile, delimiter=' ',quotechar='|', quoting=csv.QUOTE_MINIMAL)
spamwriter.writerow([alreadyIn])
with open('data.csv', 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
allData = row[0]
if newInput in allData:
#your operations
首先,'file'不可调用;不过,你可以从中读取。 –
如果''a''打开'',则无法从'file'读取。 –
希望在一个真正的应用程序中,你不会以纯文本存储密码.... – C8H10N4O2