파이썬에서 간단한 암호 저장 프로그램을 만들려고 노력 중이며 매우 간단하여 보이지 않게 쉘프를 잘못 사용하고 있는지 궁금합니다. 파이썬의 쉘브 모듈이 작동하지 않습니다 : "db 유형을 결정할 수 없습니다"
내가 메인 평 파일이 있습니다import shelve
passwords = shelve.open('./passwords_dict.py')
choice = raw_input("Add password (a) or choose site (c)?")
if choice[0] == 'a':
site_key = raw_input("Add for which site? ").lower()
userpass = raw_input("Add any info such as username, email, or passwords: ")
passwords[site_key] = userpass
else:
site = raw_input("Which site? ").lower()
if site in passwords:
print "Info for " + site + ": " + passwords[site]
else:
print site, "doesn't seem to exist!"
print "Done!"
passwords.close()
그리고 다른 파일, passwords_dict.py을, 단지 비어있는 사전이다. 내가하려고 할 때
Traceback (most recent call last):
File "passwords.py", line 3, in <module>
passwords = anydbm.open('passwords_dict.py')
File "/usr/lib/python2.7/anydbm.py", line 82, in open
raise error, "db type could not be determined"
anydbm.error: db type could not be determined
그리고 :
하지만이 프로그램을 실행하려고 할 때, 나는이 오류가 : 내가 대신 anydbm를 사용하려고하면
Traceback (most recent call last):
File "passwords.py", line 3, in <module>
passwords = shelve.open('passwords_dict.py')
File "/usr/lib/python2.7/shelve.py", line 239, in open
return DbfilenameShelf(filename, flag, protocol, writeback)
File "/usr/lib/python2.7/shelve.py", line 223, in __init__
Shelf.__init__(self, anydbm.open(filename, flag), protocol, writeback)
File "/usr/lib/python2.7/anydbm.py", line 82, in open
raise error, "db type could not be determined"
anydbm.error: db type could not be determined
,이 오류가 발생합니다 대신 dbm을 사용하면 다음 오류가 발생합니다.
Traceback (most recent call last):
File "passwords.py", line 3, in <module>
passwords = dbm.open('./passwords_dict.py')
dbm.error: (2, 'No such file or directory')
무엇이 잘못 되었나요? 사전을 저장하고 사용자 입력을 사용하여 키를 추출 할 수있는 또 다른 방법이 있습니까 (필자가 생각하는 전체 사전이 아닌).
미안 해요, 무슨의 임시 파일이 선반에 유효한 GDBM 파일을 열려고 시도 할이 대신 그 오류를 사용 thorwing 그래서 경우
? 임시 파일이 이미있는 경우에도이 기능이 작동합니까? –
'tempfile'은 표준 파이썬 모듈입니다. '임시 파일.mkstemp'는 정의에 따라 존재하는 파일을 생성해야합니다. –