사용자:큐벨리아

1 큐벨리아[ | ]

1.1 제목[ | ]

딕셔너리에 리스트을 넣을수있다는것을 만들고 알아버린 비밀번호 관리 프로그램

1.2 설명[ | ]

비밀번호 관리 프로그램

  • 현재 기능 :
    • 등록, 조회, 수정, 삭제, 종료
  • 추가 기능 :
    • 수정(예정 -> 완료), 삭제(예정 -> 완료), 등록한 회사명, 비밀번호를 메모장으로 저장 및 불러오기(예정 -> 개선필요 -> 완료)
    • GUI 제작, 예외 처리
  • 개선 사항 :
    • 입력 기능을 함수로 만들어, 추가로 입력할것인지, 입력 기능을 종료할것인지 묻는 선택문 기능 추가(예정 -> 완료)
  • 작성 기록
    • 2020-04-30 기능설명
    • 2020-05-10 기본적인 기능 구현, 개선사항 수정완료
    • 2020-05-11 수정, 삭제 기능 추가
    • 2020-05-12 메뉴에서 문자를 입력하였을경우 출력 추가
    • 2020-05-19 파일에서 딕셔너리로 저장, 딕셔너리에서 파일로 저장 추가(개선필요)
    • 2020-05-20 파일에서 딕셔너리로 저장, 딕셔너리에서 파일로 저장 추가(완료)

1.3 실행화면[ | ]

https://www.youtube.com/watch?v=Q6XtPtuqqZk

1.4 코드[ | ]

file = open('TEST.txt',mode = 'a', encoding = 'UTF-8')

Dict = {}
Temp = {}

#파일에서 가져와 딕셔너리로 저장(Temp로 저장하고 개행문자를 제거후 Dic에 저장)
def FileToDictSave() :
   
   file = open('TEST.txt',mode = 'r+', encoding = 'UTF-8')
   
   for i in file :
        Temp[i] = file.readline()
    
   for i, j in Temp.items() :
        a = i.rstrip('\n')
        b = j.rstrip('\n')
        Dict[a] = b

#딕셔너리에서 파일로 저장
def DictToFileSave() :

    file = open('TEST.txt',mode = 'w+', encoding = 'UTF-8')

    file.truncate() #메모장 내용 삭제

    for i, j in Dict.items() :
        file.write(i)
        file.write('\n')
        file.write(j)
        file.write('\n')

# 입력
def Create() :

    print('')  
    print('')
    Company = input('            회사 : ') 
    print('')
    
    if Company in Dict.keys() :
        print('            중복되는 내용이있습니다.')
        return

    PW = input('            비밀번호 : ')
 
    Dict[Company] = PW

    return

# 조회
def Join() :

    print('') 
    print('')
    Company = input('            회사 : ')
    print('')

    if Company in Dict : 
        print('            비밀번호 : ', Dict[Company])
    else :
        print('            자료가 존재하지않습니다.')

# 수정
def Updata() :

    print('') 
    print('')
    Company = input('            회사 : ')
    print('')
    PW = input('            비밀번호 : ')
    print('')
    
    if(Dict[Company] == PW) :
        del Dict[Company]
        print('            새로운 비밀번호를 입력하세요.')
        print('')
        PW = input('            ')
        Dict[Company] = PW
    else : 
        print('            비밀번호가 틀렸습니다.')
        print('')
        print('            * 다시 하시겠습니까? = 1 돌아가시겠습니까? = 2')
        print('')
        if(input('            ') == '1') :
           Updata()
        else :
           return

# 삭제
def Delete() :

    print('') 
    print('')
    Company = input('            회사 : ')
    print('')
    PW = input('            비밀번호 : ')
    print('')
    if(Dict[Company] == PW) :
        del Dict[Company]
        print('            삭제되었습니다.')
    else :
        print('            비밀번호가 틀렸습니다.')
        print('')
        
while(1) :

    #초기화
    FileToDictSave()

    # 메뉴
    print('')
    print('            ***************')
    print('            *    메 뉴    *')
    print('            ***************')
    print('')
    print('            ***************')
    print('            *             *')
    print('            *   1. 입력   *')
    print('            *             *')
    print('            *   2. 조회   *')
    print('            *             *')
    print('            *   3. 수정   *')
    print('            *             *')
    print('            *   4. 삭제   *')
    print('            *             *')
    print('            *   5. 종료   *')
    print('            *             *')
    print('            ***************')
    print('')

    print('            * Select = ', end =' ')
    Select = input()

    # 1. 입력
    if Select == '1' :
        Create()
    
    # 2. 조회
    if Select == '2' :
        Join()

    # 3. 수정
    if Select == '3' :
        Updata()

    # 4. 수정
    if Select == '4' :
        Delete()

    # 4. 종료
    if Select == '5' : 
        print('')
        print('            프로그램을 종료합니다.')
        print('')
        break
    
     # 문자입력시 안내사항
    if (Select.isdigit() == False) or int(Select) > int(5) :
        print('')
        print('            잘못입력하셨습니다.')

    DictToFileSave()

1.5 참고자료[ | ]

1.6 지식인[ | ]

#질문
#작성자 : 큐벨리아
#메모장에 있는 내용을 키, 값을 가져와 개행문자 제거후 dic에 저장하고 싶은데 아래로 실행해보니 값만 개행문자 지워지네요 혹시 키도 지울수있는 방법아시는분 계신가요???

file = open('password.txt', 'r', encoding='utf-8')
dic = {}

for i in file :
   PW = file.readline().strip('\n')
   dic[i] = PW

print(dic)

#답변
#작성자 : 큐벨리아
#파일에서 가져와 딕셔너리로 저장(Temp로 저장하고 개행문자를 제거후 Dic에 저장)

def FileToDictSave() :
   
   file = open('TEST.txt',mode = 'r+', encoding = 'UTF-8')
   
   for i in file :
        Temp[i] = file.readline()
    
   for i, j in Temp.items() :
        a = i.rstrip('\n')
        b = j.rstrip('\n')
        Dict[a] = b

1.7 댓글[ | ]

  • 고양이: 안녕하세요? 반가워요.
  • Projects.Kinder : 안녕하세요. 큐벨리아님 코드 참고해서 업글해봐야겠어요 :)
  • 김왼손: 자문자답이군요ㅋㅋㅋ 훌륭합니다. :)
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}