【问题标题】:Am I using pickle correctly?-Python我正确使用泡菜吗?-Python
【发布时间】: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,程序将尝试自动导入优化版本。

标签: python list pickle


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    • 2015-06-25
    相关资源
    最近更新 更多