如何使用电子表格或等效工具在python中存储列表?

如何使用电子表格或等效工具在python中存储列表?,python,arrays,list,csv,Python,Arrays,List,Csv,我正在寻找一种将我的列表存储在电子表格中的方法,这样我可以通过阅读来检查帐户是否存在,也可以通过写入来创建新帐户 下面的例子只有用户名和密码,但我也要求在我的代码的createaccount部分发送电子邮件,这样也会存储在电子表格中 另外,我很好奇是否有人有任何关于如何使这更安全的建议 userlist = ["user1","user2","user3"] passlist = ["pass1","pass2","pass3"] username = str(input("\n[Login

我正在寻找一种将我的列表存储在电子表格中的方法,这样我可以通过阅读来检查帐户是否存在,也可以通过写入来创建新帐户

下面的例子只有用户名和密码,但我也要求在我的代码的createaccount部分发送电子邮件,这样也会存储在电子表格中

另外,我很好奇是否有人有任何关于如何使这更安全的建议

userlist = ["user1","user2","user3"]
passlist = ["pass1","pass2","pass3"]

username = str(input("\n[Login to an existing account]\nUsername:"))
password = str(input("Password:"))
    if username in userlist:
        if password == passlist[userlist.index(username)]:
            logged_in = True

猎人,如果你真的想用电子表格来做这类事情,请检查一下,但是请考虑我们在评论中使用的“真实”数据库。p> 从OpenPyXl文档:

从工作表中读取

from openpyxl import load_workbook
wb = load_workbook(filename='large_file.xlsx', read_only=True)
ws = wb['big_data']

for row in ws.rows:
    for cell in row:
        print(cell.value)
使用上述方法,您应该能够通过密码检查执行以下操作:

from openpyxl import load_workbook
wb = load_workbook(filename='userpasslist.xlsx', read_only=True)
ws = wb['userpassworksheet']

for row in ws.rows:
    # assuming 1st column contains user names
    if row[0].value == username:
        # assuming 2nd column contains matching password
        if row[1].value == password:
            print("Success! Password matches! Do something here!")
        else:
            print("booo! Wrong password! Now git' out!")
        break

如何应用此选项:

import xlsxwriter

# Create a workbook and add a worksheet.
workbook = xlsxwriter.Workbook('userpassbook.xlsx')
worksheet = workbook.add_worksheet()

# Some data we want to write to the worksheet.
users = (
    ['user1', 'password'],
    ['user2', 'password'],
    ['user3', 'password'],
    ['user4', 'password']
)

# Start from the first cell. Rows and columns are zero indexed.
row = 0
col = 0

# Iterate over the data and write it out row by row.
for username, password in (users):
    worksheet.write(row, col, username)
    worksheet.write(row, col + 1, password)
    row += 1

workbook.close()

出于您的目的,读/写CSV(逗号分隔值)文件比使用电子表格更容易。请注意,所有现代电子表格应用程序都可以读取CSV文件并将其显示为电子表格,还可以将电子表格导出为CSV文件

import csv

# reading the lists from an existing CSV
with open('usernames_and_passwords.csv', 'r') as f:
    reader = csv.reader(f)
    userlist = [row[0] for row in reader]
    passlist = [row[1] for row in reader]

# writing the Python lists to a CSV (overwrites existing files)
with open('usernames_and_passwords.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerows(zip(userlist, passlist))
然而: 像上面评论中提到的@JoshuaSchlichting一样,电子表格不是存储用户信息的非常安全的方式。一般来说,用户密码应永远存储在应用程序服务器端的任何位置。应用程序通常存储每个用户密码的不可逆加密散列,当用户输入密码时,应用程序将使用该散列与新计算的散列进行比较。这是为了防止在服务器遭到黑客攻击时密码信息被泄露


出于学习的目的,使用现有方法是可以的,只是不要在公共应用程序中使用它。

提高安全性的提示:不要将此数据存储在电子表格中。使用“真实”数据库并加密您的资料@JoshuaSchlichting我大约一周前才开始学习python,我该怎么做呢?这一部分实际上并不特定于python。有各种各样的数据库管理系统可供选择,每种系统都有各自的细微差别和安全措施。因为您是新手,所以从SQLite3开始可能是最容易的。查看它,并在此处阅读如何加密数据库:您是否能够通过“寻找将我的列表存储在电子表格中的方法”解决您的问题?@JoshuaSchlichting&nmog,这似乎是目前最简单的解决方案。我会查数据库,但你们还有其他的建议吗?这是我的全部代码:代码的结尾没有任何意义,但那是因为我真的不知道我想要这个程序是什么。虽然我也会选择csv而不是电子表格(我也很欣赏fedora的“大声喊叫”技巧),但这个问题特别问到如何读/写电子表格,而不是“除了写电子表格,还有什么更好的选择?”\_(ツ)_/“触摸”@JoshuaSchlichting@HunterGuimont为了便于阅读,您可能希望将处理单个登录操作的逻辑放在单独的函数中。例如,如果login\u option==str(2):