python - 텍스트 파일 문제 풀이

slocat·2023년 11월 19일
0

start-data

목록 보기
18/75

텍스트 파일이 생성되고 변경되는 게 신기해서 즐겁게 배울 수 있는 파트였다.😊

한 줄 일기

diary.py

import time

def writeDairy(url, file, text):
    lt = time.localtime()
    timeStr = time.strftime('%Y-%m-%d %I:%M:%S %p', lt)
    
    filePath = url + file
    with open(filePath, 'a') as f:
        f.write(f'[{timeStr}] {text}\n')

def readDiary(url, file):
    filePath = url + file
    datas = []
    with open(filePath, 'r') as f:
        datas = f.readlines()
    
    return datas

실행 파일

import diary

# id, pw 관리하기 위해 dic으로 선언
members = {}
url = "경로"

def printMembers():
    for key in members.keys():
        print(f'ID: {key} \t PW: {members[key]}')

while True:
    inputNum = int(input('1.회원가입  2.일기쓰기  3.일기보기  4.종료 : '))
    
    if inputNum == 1:
        id = input('아이디 입력: ')
        pw = input('비밀번호 입력: ')
        members[id] = pw
        printMembers()
    
    elif inputNum == 2:
        id = input('아이디 입력: ')
        pw = input('비밀번호 입력: ')

        if id in members and members[id] == pw:
            print('login success')
            fileName = 'myDiary_' + id + '.txt'
            text = input('한 줄 일기 작성: ')
            diary.writeDairy(url, fileName, text)
    
        else:
            print('login fail')
            printMembers()
        
    elif inputNum == 3:
        id = input('아이디 입력: ')
        pw = input('비밀번호 입력: ')

        if id in members and members[id] == pw:
            print('login success')
            fileName = 'myDiary_' + id + '.txt'
            datas = diary.readDiary(url, fileName)
            
            for data in datas:
                print(data, end='')
    
        else:
            print('login fail')
            printMembers()
    
    elif inputNum == 4:
        print('bye')
        break

가계부

파일_1: 수입 지출 이력 관리
파일_2: 잔액 관리

def getTime():
    lt = time.localtime()
    timeStr = time.strftime('%Y-%m-%d %H:%M:%S', lt)
    return timeStr

url = "경로"
        
while True:
    inputNum = int(input('1.입금  2.출금  3.종료 : '))
    
    if inputNum == 1:
        money = int(input('입금액 입력: '))
        
        # 현재 잔고 읽어오기
        # 파일을 미리 만들어놓는 이유: 'r' 모드는 파일 없으면 에러 발생
        with open(url + 'money.txt', 'r') as f:
            curMoney = f.read()
        
        with open(url + 'money.txt', 'w') as f:
            f.write(str(int(curMoney) + money))
    
        memo = input('입금 내역 입력: ')
        with open(url + 'moneyRegister.txt', 'a') as f:
            f.write('--------------------------------\n')
            f.write(f'{getTime()}\n')
            f.write(f'[입금] {str(money)}원 : {memo}\n')
            f.write(f'[잔액] {str(int(curMoney) + money)}원\n')
        
        print('입금 완료')
        print(f'기존 잔액: {curMoney}')    
        print(f'입금 후 잔액: {int(curMoney) + money}')    
                    
    elif inputNum == 2:
        money = int(input('출금액 입력: '))
        
        with open(url + 'money.txt', 'r') as f:
            curMoney = f.read()
        
        with open(url + 'money.txt', 'w') as f:
            f.write(str(int(curMoney) - money))
    
        memo = input('출금 내역 입력: ')
        with open(url + 'moneyRegister.txt', 'a') as f:
            f.write('--------------------------------\n')
            f.write(f'{getTime()}\n')
            f.write(f'[출금] {str(money)}원 : {memo}\n')
            f.write(f'[잔액] {str(int(curMoney) - money)}원\n')
        
        print('출금 완료')
        print(f'기존 잔액: {curMoney}')    
        print(f'출금 후 잔액: {int(curMoney) - money}')    

    elif inputNum == 3:
        print('bye')
        break
    
    else:
        print('다시 입력하세요.')

0개의 댓글