2017-02-03 4 views
0

У меня есть ошибка и ниже часть кода: код остальное в https://github.com/Flajt/Python-Webcam/blob/Flajt-ui-1/ui.pyPython 3 нет атрибута записи?

Traceback (most recent call last): 
    File "C:\Users\Flajt\Documents\GitHub\Python-Webcam\ui.py", line 66, in <module> 
    create() 
    File "C:\Users\Flajt\Documents\GitHub\Python-Webcam\ui.py", line 31, in create 
    save2=pickle.dump(password, hash) 
TypeError: file must have a 'write' attribute` 

Код:

if Pass_ok: 
    hash = pbkdf2_sha256.encrypt(password2, rounds=200000, salt_size=16) 
    password=open("pass.pkl","wb") 
    save2=pickle.dump(password, hash) 
    main() 
+0

его 'дамп (хэш, пароль)'. 'help (pickle.dump)' помогает! – tdelaney

+0

@tdlaney в моем скрипте - это атрибут записи (я думаю, так) –

+0

Подпись - это 'dump (obj, file, protocol = None, *, fix_imports = True)' то есть вы делаете то, что хотите сначала рассолковать, и файл, который вы хотите разложить на второй. – tdelaney

ответ

1

Проблема была просто, что вы отменил два параметра pickle.dump. В стороне, лучше всего написать сценарий сортировки, запуска, демонстрации, когда сможете. Таким образом, другие могут легко запускать его. Вот текущее решение с исправлением

#!/usr/bin/env python3 

import pickle 
from passlib.hash import pbkdf2_sha256 

hash = pbkdf2_sha256.encrypt("foo", rounds=200000, salt_size=16) 
password = open("pass.pkl", "wb") 
# save2=pickle.dump(password, hash) 
pickle.dump(hash, password) 
+0

, она работает хорошо –

Смежные вопросы