微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将列表写入文件以供日后重用

如何解决将列表写入文件以供日后重用

我有一个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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?