【发布时间】:2015-08-28 21:37:54
【问题描述】:
我是 Python 初学者,因此不知道为什么会收到以下错误:
类型错误:无效文件:[]
对于这行代码:
usernamelist=open(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)
所有答案将不胜感激。谢谢。
【问题讨论】:
-
用户名和密码不是文件,而是列表。如果您只是想将输入添加到列表中,则可以追加到列表中
-
open()的第一个参数应该是一个文件名,你传递给它的是一个list。这个answer 有例子。 -
另外,将密码存储在未加密的文件中可能不是一个好主意。
-
如果你使用 Python3,你肯定需要为二进制包含一个 'b'。
-
顺便说一句,如果您使用的是 Python 2.7,请使用
import cPickle as pickle。 “cPickle 是用 C 语言编写的,因此它可以比 pickle 快 1000 倍”(docs.python.org/2/library/pickle.html)。如果您使用的是 Python 3.x,只需import pickle,程序将尝试自动导入优化版本。