如何从 csv 文件加载用户名?
Posted
技术标签:
【中文标题】如何从 csv 文件加载用户名?【英文标题】:How do I load the username from a csv file? 【发布时间】:2019-02-27 20:04:00 【问题描述】:我在学校的计算机科学中学习了如何使用 python 创建文件。我创建了一段代码,您可以在其中创建用户名和密码,然后将其保存到 csv 文件中。还有另一个选项可以登录。它要求您输入用户名,如果输入错误,它会显示“找不到用户名”。无论我输入什么(即使它是正确的),它都会显示找不到用户名。 这是代码的主要部分:
Log = input("Enter Choice here: ")
if Log == "Log In" or Log == "log in" or Log == "Log in" or Log == "log In":
Data = open("F:\\'Filename'.csv", "r")
SavedUser = Data.readline()
Username = input("Username: ")
if Username == SavedUser:
print("Welcome", Username, "!")
Password = input("Password: ")
if Password == Data.readline():
print("It works")
感谢您的所有帮助。
【问题讨论】:
你为什么不打印 SavedUser 和 Username 来看看你得到了什么? 顺便说一句,按照惯例,Python 编码人员对变量和类属性使用小写字母,对类使用 CamelCase。大写的常量。 您不会检查 CSV 中的每个元素。 简化为if Log.lower() == "log in":
见PEP 8 - Style Guide for Python Code。
【参考方案1】:
您的 CSV 文件可能没有被正确读取。 Python 有一个 csv 库来正确解析 CSV 文件。您可以做的是将 CSV 文件读取到字典中,然后比较用户名和密码。
import csv
action = input("Enter Choice here: ")
if action.lower() == "Log In".lower(): #Convert both strings two lowercase and then compare
reader = csv.reader(open('demo.csv', 'r')) #parsing the csv file correctly
user_dict = dict(reader) #converting iterable reader directly to a dictionary
#'abc': 'abc123', 'username': 'password'
username_input = input("Username:")
if username_input in user_dict: #check if username exists as a key in the dictionary
print("Welcome", username_input, "!")
password_input = input("Password: ")
if password_input == user_dict[username_input]:
print("It works")
【讨论】:
我收到此错误:Traceback(最近一次调用最后一次):文件“F:\TDA Casino.py”,第 17 行,在以上是关于如何从 csv 文件加载用户名?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 elixir/phoenix 从 csv 文件导入用户?
如何将特定数据字段从 ArrayList 加载到某些 JTextFields?