首页 > 解决方案 > 如何在Python中查找用户名是否存在于文件中

问题描述

我创建了一个包含用户信息的存档(usersfile.txt),我希望在插入用户名时,如果用户名存在于文件中,则返回用户存在并将我引向用户的个人资料(个人资料是好的)。问题是我在文件中找不到用户。

该文件是这样的:

{'user': 'mark', 'age': '20', 'city': ' london '},
{'user': 'jason', 'age': '28', 'city': ' london '},
{'user': 'john', 'age': '25', 'city': ' london '},
{'user': 'pit', 'age': '24', 'city': ' london '}

当我插入第一个用户名('标记)时,它可以工作,但是当我插入其他用户名时,它不起作用。有什么建议吗?

用正则表达式更好吗?(但我不知道怎么做)

username = input('Enter Username:')

   with open(usersfile.txt, 'r', encoding = 'utf-8') as f :
    userfiles=[]
    for userf in f:
      userf = userf.split()
      userfiles.append(userf)

   for names in userfiles:
    if username in names:
      print('User {} exist :'.format(username))
      UserProfile()
      return True
    else:
      print('User {} doesn't exist :'.format(username))
      return False

标签: pythonpython-3.x

解决方案


>>> user_props = {'user': 'mark', 'age': '20', 'city': ' london '},
{'user': 'jason', 'age': '28', 'city': ' london '},
{'user': 'john', 'age': '25', 'city': ' london '},
{'user': 'pit', 'age': '24', 'city': ' london '}
>>> # to find the person
>>> for person in user_props:
       user_name = person.get('user')
       if user_name and user_name == 'mark':
           print(person)
{'user': 'mark', 'age': '20', 'city': ' london '}
>>> # just check if mark is a user
>>> any([it for it in user_props if it.get('user') is 'mark'])
True

推荐阅读