본문 바로가기
KDT/과제

[파이썬, Python] 파일 입출력 - 영어 단어장을 만들어보자! 📖

by coding-choonsik 2023. 3. 15.
728x90
반응형
SMALL

문제

아래와 같이 번호를 선택하고 단어를 입력하고 출력한 후 파일로 저장하는 프로그램을 만들어보자.

 

  * 아래 번호를 선택하세요
  * 1. 단어 입력(단어, 뜻, 레벨)
  * 2. 단어 출력
  * 3. 단어 저장(word.txt에 저장)
  * 4. 프로그램 종료

아래 번호를 선택하세요: 1
단어를 입력하세요: apple(단어), 사과(뜻), 1(레벨)
입력되었습니다.
아래 번호를 선택하세요: 1
단어를 입력하세요: banana, 바나나, 1
입력되었습니다.
아래 번호를 선택하세요: 2
> apple(사과, level1)
banana(바나나, level1)
아래 번호를 선택하세요: 3
저장되었습니다.
아래 번호를 선택하세요: 4
프로그램을 종료합니다.

> 단, 저장된 파일이 있는 경우 프로그램 재실행시 데이터를 읽어서 메모리에 저장

💡나의 풀이

print(''' 
----------------------------------------------------
1. 단어 입력(단어, 뜻, 레벨)
2. 단어 출력
3. 단어 저장
4. 프로그램 종료
----------------------------------------------------
''')

eng = []
kor = []
level= [] 


# 기존에 word.txt 파일이 있을 때
try:
    file = open('./word.txt', 'rt')
    data= file.read()
    print('word.txt 읽기 성공!')
    print(data)

# word.txt 파일이 없다면
except:
  try:
    while True:
      num = int(input('번호를 선택하세요: '))

      #  프로그램 종료
      if num == 4:
        print('프로그램을 종료합니다')
        break

      # 단어를 작성
      if num == 1:
        a, b, c= input('단어를 입력하세요(단어, 뜻, 레벨): ').split(',')
        
        eng.append(a)
        kor.append(b)
        level.append(c)
        # print(eng)
        # print(kor)
        # print(level)
      
      # 작성한 단어를 보고싶을 때
      if num == 2:
        for e, k, l in zip(eng, kor, level):
            print(f'{e}({k}, {l})'+'\n')

      # word.txt로 저장      
      if num == 3:
        file = open('./word.txt', 'at')
        for e, k, l in zip(eng, kor, level):
          file.write(f'{e}({k}, {l})'+'\n')
        file.close()
        print('저장 완료!')
        
  except:
    print('파일이 없습니다!')

 

728x90
반응형
LIST