PYTHON/etc

python 회원 관리 프로그램 -csv파일

sshhhh 2023. 9. 15. 17:08

<순서>

1.회원 데이터 추가
-회원 아이디를 입력받는다.
-이미 존재하면 기능 종료
-이름,이메일,나이,키 입력받는다.
 
2.회원 데이터 삭제
-회원 아이디를 입력받는다.
-아이디가 존재하지 않으면 없다고 출력하고 기능 종료
-존재하면 삭제하고 삭제하였다고 출력
 
3.회원 데이터 검색
-회원 아이디를 입력받는다.
-아이디가 존재하지 않으면 없다고 출력하고 기능 종료
-존재하면 출력

 

4.전체 회원 데이터 정보 출력
아이디 순으로 전체 회원정보 출력
 
0.프로그램 종료
프로그램 종료시 회원 정보를 members.csv파일로 기록
프로그램 시작시 members.csv파일에 정보를 로딩

 


-로드

#구현하지 않으면 예외처리
#members.csv 불러오기

members={}
def load(fname):
  try:
    fs = open(fname,'r')
  except:
    print("Welcome~")
    return
  all = fs.read()
  fs.close()
  k_datas=all.split('\n')
  for i in range(1,len(k_datas)):
    k_data = k_datas[i]
    kds = k_data.split(',')
    if(len(kds)!=5):
      break
    data=[]    
    for i in range(1,5):      
      data.append(kds[i])
    members[kds[0]] = data

-저장

def save(fname):
  fs = open(fname,'w')
  for _, (id,data) in enumerate(members.items()):  #_:인자를 전달받지 않겠다.둘중하나만 필요해서 _써서 안받음
    fs.write(f"{id},{data[0]},{data[1]},{data[2]},{data[3]}\n")
  fs.close()

-추가

members={}
def add_member():  
  id = input("추가할 회원 아이디:")#회원 아이디를 입력받는다.
  if id in members:#이미 존재하면
    print("이미 존재하는 아이디입니다.")
    return #기능 종료
  data=[]
  data.append(input("이름:"))
  data.append(input("이메일:"))
  try:
    data.append(int(input("나이:")))
  except:
    print("잘못 입력하여 나이를 0으로 설정합니다.")
    data.append(0)
  try:
    data.append(float(input("키:")))    
  except:
    print("잘못 입력하여 키를 0으로 설정합니다.")
    data.append(0)
  members[id] = data

-삭제

def remove_member():
  id = input("삭제할 회원 아이디:")#회원 아이디를 입력받는다.
  if id not in members:#존재하지 않으면
    print("존재하지 않는 아이디입니다.")
    return #기능 종료
  del members[id]
  print("삭제하였습니다.!!!")

-검색

def find_member():
  id = input("검색할 회원 아이디:")#회원 아이디를 입력받는다.
  if id not in members:#존재하지 않으면
    print("존재하지 않는 아이디입니다.")
    return #기능 종료
  print(members[id])

 

-출력

def view_members():
  print(members)

 

-메뉴

def select_menu():    
  print("회원 관리 프로그램...")
  print("1: 회원 데이터 추가")
  print("2: 회원 데이터 삭제")
  print("3: 회원 데이터 검색")
  print("4: 전체 회원 데이터 보기")
  print("0: 프로그램 종료")
  try:
    key = int(input("선택:"))
  except:
    key = 5
  return key

 

-결과보여주기

fname='/content/drive/MyDrive/파이썬/members.csv'
load(fname)
while True:
  key = select_menu()
  if key == 0:
    print("프로그램을 종료합니다.")
    break
  if key == 1:
    add_member()
  elif key == 2:
    remove_member()
  elif key == 3:
    find_member()
  elif key == 4:
    view_members()
  else:
    print("잘못 선택하였습니다.")
save(fname)

<실행창>

회원 관리 프로그램...
1: 회원 데이터 추가
2: 회원 데이터 삭제
3: 회원 데이터 검색
4: 전체 회원 데이터 보기
0: 프로그램 종료
선택:1
추가할 회원 아이디:aaa
이름:제갈명수
이메일:aa@
나이:12
키:12
회원 관리 프로그램...
1: 회원 데이터 추가
2: 회원 데이터 삭제
3: 회원 데이터 검색
4: 전체 회원 데이터 보기
0: 프로그램 종료
선택:1
추가할 회원 아이디:bbb
이름:독고명수
이메일:dg@
나이:아
잘못 입력하여 나이를 0으로 설정합니다.
키:가
잘못 입력하여 키를 0으로 설정합니다.
회원 관리 프로그램...
1: 회원 데이터 추가
2: 회원 데이터 삭제
3: 회원 데이터 검색
4: 전체 회원 데이터 보기
0: 프로그램 종료
선택:4
{'aaa': ['제갈명수', 'aa@', 12, 12.0], 'bbb': ['독고명수', 'dg@', 0, 0]}
회원 관리 프로그램...
1: 회원 데이터 추가
2: 회원 데이터 삭제
3: 회원 데이터 검색
4: 전체 회원 데이터 보기
0: 프로그램 종료
선택:2
삭제할 회원 아이디:aaa
삭제하였습니다.!!!
회원 관리 프로그램...
1: 회원 데이터 추가
2: 회원 데이터 삭제
3: 회원 데이터 검색
4: 전체 회원 데이터 보기
0: 프로그램 종료
선택:3
검색할 회원 아이디:aaa
존재하지 않는 아이디입니다.
회원 관리 프로그램...
1: 회원 데이터 추가
2: 회원 데이터 삭제
3: 회원 데이터 검색
4: 전체 회원 데이터 보기
0: 프로그램 종료
선택:3
검색할 회원 아이디:bbb
['독고명수', 'dg@', 0, 0]
회원 관리 프로그램...
1: 회원 데이터 추가
2: 회원 데이터 삭제
3: 회원 데이터 검색
4: 전체 회원 데이터 보기
0: 프로그램 종료
선택:0
프로그램을 종료합니다.