我正确使用泡菜吗?-Python

时间:2015-08-28 21:37:55

标签: python list pickle

我是Python的初学者,因此我不确定为什么会收到以下错误:

  

TypeError:文件无效:[]

这段代码:

  

usernamelist =开放(USER_NAMES, 'W')

我正在尝试输入用户名和密码,将它们写入文件,然后阅读它们。

以下是我的其余代码:

user_names=[]
passwords=[]
username=input('Please enter a username')
password=input('Please enter a password')
usernamelist=open(user_names,'w')
pickle.dump(userName,usernamelist)
usernamelist.close()
usernamelist=open(user_names,'r')
loadusernames=pickle.load(usernamelist)

passwordlist=open(passwords,'w')
pickle.dump(password,passwordlist)
passwordlist.close()
passwordlist=open(passwords,'r')
loadpasswords=pickle.load(passwordlist)

所有答案都将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

根据您的脚本,这可能会有所帮助。它创建了一个' username.txt'和' password.txt'存储输入用户名和密码。

我使用python2.7,输入在python2.7和python3.x之间表现不同。

"""
opf: output file
inf: input file

use with instead of .open .close: http://effbot.org/zone/python-with-statement.htm

for naming rules and coding style in Python: https://www.python.org/dev/peps/pep-0008/
"""


import pickle

username = raw_input('Please enter a username:\n')
password = raw_input('Please enter a password:\n')

with open('username.txt', 'wb') as opf:
    pickle.dump(username, opf)

with open('username.txt') as inf:
    load_usernames = pickle.load(inf)
    print load_usernames

with open('password.txt', 'wb') as opf:
    pickle.dump(password, opf)

with open('password.txt') as inf:
    load_passwords = pickle.load(inf)
    print load_passwords