就我而言,我正在创建一个注册表,并且需要通过使用CSV将登录凭据存储到外部文件中。如何在Python中使用CSV读取所有行?
我有2个问题:
- 每次登录(用户名和密码),除了第一个不 工作。我第一次登录“14JeoJun”的用户名和“海鸥” 作品,但下一个“13ParJim”的用户名和“excuseme” 密码不对,还有休息之后。我认为这是因为它没有读取所有的行。
它不会循环3次代码,然后关闭。它会永远循环它,如果你一直搞错了,即使登录凭证不是第一个但是是正确的。如果第一个登录凭证是正确的,则停止循环并退出。我认为这是因为上面的第一个问题。
with open("login_credential.txt","r") as login_credential: for x in range (0,2): inputted_username = input("Please enter your username - ") inputted_password = input("Please enter your password - ") login_credentialReader = csv.DictReader(login_credential) for lines in login_credentialReader: if lines["username"].lower() == inputted_username and lines["password"].lower() == inputted_password: print("Welcome...") sys.exit() elif lines["username"].lower() != inputted_username or lines["password"].lower() != inputted_password: x += 1 print("Login credentials are incorrect. Please try again.") login() if x >= 3: print("Too many incorrect tries...") sys.exit
这是在我的外部文件(login_credential.txt):
用户名,密码,名,姓,一年
14JeoJun,海鸥,Jungkook,全度妍2014
13ParJim,excuseme,济民,公园,2013
10KimNam,gotjams,Namjoon,金,2010
每当我先切换,只有第一个会起作用。
读取csv文件是这样一个标准问题;你为什么不使用熊猫,这将更容易处理数据,因为你可以以矢量化的方式处理所有这些循环? – Magellan88
@ Magellan88它看起来像是学校作业 – Gnudiff