如何检查用户输入是否已存在于文本文件中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() 
+3

首先,'file'不可调用;不过,你可以从中读取。 –

+0

如果''a''打开'',则无法从'file'读取。 –

+0

希望在一个真正的应用程序中,你不会以纯文本存储密码.... – C8H10N4O2

既然你需要将文件几次的搜索,直到客户进入一个新的用户名,我建议你闯入步骤如下:

  1. 文件读入到您方便的数据结构,某种用户名表。关闭文件。
  2. 当客户输入名称时,可以使用运算符来检查现有名称的列表。
  3. 获得新信息后,再次打开文件以“附加”,并将新信息添加到文件中。

这让你感动吗?

+0

ok将它附加到文件好的,谢谢我将为用户名创建一个数组 – tojas

  1. 从头到尾读取文件并将其保存在列表中。
  2. 由于您要检查多次,最好将整个列表保存在一行csv文件中。 这会减少读取时间。

  3. 然后只需检查用户名是否在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