2013-08-07 2 views
0

나는 프로그램을 만들고 있는데, 어떻게해야 하는지를 알고있는 다른 파일에서 사전에 접근해야한다. 나는 또한 같은 사전을 추가 할 수 있어야한다. 현재 파일을 다른 파일에 저장합니다.Python : 다른 파일에 사전 추가하기

어쨌든 이것을 수행하고 있습니까?

편집 :.

프로그램이 계정을 만들 수 있습니다 로그인하도록 요구하고, 당신이 할 때 해당 사용자 이름 저장해야합니다 : 당신이 사전에 입력 한 암호를. 내가 가진 방식대로 계정을 만들 수 있지만 일단 프로그램을 종료하면 계정이 삭제됩니다.

+0

는 "다른 파일로 저장"으로 무엇을 의미합니까? 'dict1.update (** dict2)'만으로 충분하지 않습니까? 실제로 dict를 serialize하고 파일에 저장 하시겠습니까? 제발 좀 더 자세히 설명해주세요. – Ludo

+0

@ 루도'dict1.update (** dict2)'는 완전히 쓸모 없으며, 비효율적이며, 충분히 큰 사전으로 스택 오버 플로우를 야기 할 수 있으며, 미래에 작동하지 않을 수도있는 구현 세부 사항에 의존합니다. * dict1.update (dict2) 만하면됩니다. – Bakuriu

+0

@Bakuriu 그 진술에 대한 참조가 있습니까? – Ludo

답변

2

pickle 모듈을 사용하여 객체 직렬화를 제공하는 Python으로 데이터 구조를 저장하고 검색 할 수 있습니다.

저장 사전

import pickle 
some_dict = {'this':1,'is':2,'an':3,'example':4} 

with open('saved_dict.pkl','w') as pickle_out: 
    pickle.dump(some_dict,pickle_out) 

로드 사전

with open('saved_dict.pkl.'r') as pickle_in: 
    that_dict_again = pickle.load(pickle_in) 
+0

나는 이것을 시도했다 : self.accounts = pickle.load (open ('logins.pkl', 'rb')) 나에게이 오류를 주었다 : FileNotFoundError : [Errno 2] 그런 파일이나 디렉토리가 없다 : 'logins.p' 내가 IDLE에서 작동하기 때문에 왜 그런지 모르겠다 – user2155059

+0

logins.pkl 파일은 실행중인 스크립트에 상대적인 올바른 위치에 있습니까? – FMcC

+0

무엇을 의미합니까? 같은 폴더에 있습니까? – user2155059