如何解决将列表写入文件以供日后重用
我有一个python文件,需要使用用户名和密码进行身份验证。这些用户名和密码详细信息以以下格式保存到文件中:
userlist = [[username,password],[username1,password1]]
,依此类推。这可行,但是当我将列表写入文件时,我会将其写为这样的字符串:
name_write_file = open("names.txt","w")
name_write_file.writelines(str(name_list))
print("user data successfully saved to file")
name_write_file.close()
userlist[0]
通常这应该返回“用户名”,但现在返回“ [”(保存到文件的字符串的第一个括号)
有什么办法解决这个问题?
预先感谢
解决方法
保存和检索列表的快速方法是使用eval
:
name_list = [['username','password'],['username1','password1']]
name_write_file = open("names.txt","w")
name_write_file.writelines(str(name_list))
print("user data successfully saved to file")
name_write_file.close()
with open("names.txt") as f:
name_list2 = eval(f.read())
print(name_list)
print(name_list2)
print(name_list2[0])
输出
[['username','password1']]
[['username','password1']]
['username','password']
,
file.writelines(序列) 如您所知,它将按顺序将项目另存为文件中的字符串。 因此,要解决您的问题,您需要编写一些棘手的代码,如下所示。 `
userlist = ["user1-password1\n","user2-password2"]
# save user data
f = open("test.txt","w+")
f.writelines(userlist)
f.close()
# get user data
f = open("test.txt","r+")
read_list = f.readlines()
user_data = [[item.split('-')[0],item.split('-')[1].rstrip()]for item in read_list]
print(user_data)
f.close()
` 您可以从此代码中获得一些想法。当然,您可以改善它。
,file.writelines(序列) 如您所知,它将按顺序将项目另存为文件中的字符串。 因此,要解决您的问题,您需要编写一些棘手的代码,如下所示。 `
userlist = ["user1-password1\n",item.split('-')[1].rstrip()]for item in read_list]
print(user_data)
f.close()
` 您可以从此代码中获得一些想法。当然,您可以改善它。
内置的eval()函数也是您解决方案的好方法。
,CSV文件是保存数据的更好格式。 您可以这样写数据:
with open("my_user_pwd.csv",'w',newline='') as csvfile:
fieldnames = ['username','password']
writer = csv.DictWriter(csvfile,fieldnames=fieldnames)
writer.writerow({'Username1': 'Password1'})
writer.writerow({'Username2': 'Password2'})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。