python - 如何在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
解决方案
>>> 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
推荐阅读
- ios - 线程 1:在 Xcode 11.2.1 上运行的信号 SIGABRT 错误
- angular - Angular 无法分配给对象“[object HTMLImageElement]”的只读属性“offsetTop”
- akka - 使用 AbstractBehavior 和 AbstractActor 定义 Akka Actor 有什么区别?
- agda - 如何证明正有理数上的减半函数总是存在的?
- php - Codeigniter 分页不适用于 jquery 选项卡
- python - Python 函数 locals() 只是通过调用它来改变
- javascript - 从另一个类扩展和传播函数
- json - 如何正确使用“可扩展”类型?
- active-directory - LDAP - 如何过滤具有特定属性的用户
- javascript - 数组填充后如何加载页面?