인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김데이빗님의 프로필 이미지
김데이빗

작성한 질문수

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

File Wirte(2-2)

안녕하세요 강의 듣고나서 혼자서 만들어봤는데.. 영 모르겠어서 질문 남깁니다.

작성

·

159

0

이렇게 여기에 질문해도 될지 모르지만...

어제 파이썬 초급 강의를 모두 마치고 어설프게 나마 혼자서 코딩 해봤습니다..

저는 특정 메뉴 활동을 마친 이후에 자동으로 처음으로 돌아가는게 아니라,

특정 명령어를 입력하면 처음으로 돌아가게끔 하고싶은데,

도저히 어떻게 해야할지 떠오르지 않아서 열심히 구글링하고 찾아보다가 결국 선생님께 도움 요청합니다 ㅠㅠ

직접 코딩 해본거라서 많이 허접할 지도 모르지만.. 

제가 원하는 건..

1번으로 신규 학생을 등록, 2번으로 기록열람, 3번으로 상담기록 추가를 한 후 특정 명령어를 입력하면 맨 처음 메뉴가 출력되었으면 좋겠습니다. while문으로 해두니까 계속 처음으로 돌아가서 특히 상담 기록 열람을 하고 난 이후에 상담 내용이 위로 쭉 올라가 버리더라구요 ㅠㅠ 지도편달 부탁드립니다.

#시작
import os
import csv

def counseling():
while True:
print("------학생 상담 일지------")
print("1 - 학생 신규 등록")
print("2 - 상담 기록 열람")
print("3 - 상담 추가 기록")
print("4 - 프로그램 종료")
menu1 = input("번호를 입력해주세요 :")

if menu1 == '1':
newname = input("학생의 이름을 입력해주세요 : ")
print(newname)
with open('./students/{}.csv'.format(newname), 'w', newline="") as n:
date = str(input("상담 날짜 : "))
content = str(input("상담 내용 : "))
writer = csv.writer(n)
writer.writerow([date, content])

elif menu1 == '2':
path = './students'
lists = os.listdir(path)
for a in lists:
print(a)
open_name = input('학생의 이름을 입력하세요 : ')
with open("./students/{}.csv".format(open_name), 'r') as f:
rdr = csv.reader(f)
for v in rdr:
print(v)

elif menu1 == '3':
path = './students'
lists2 = os.listdir(path)
for a in lists2:
print(a)

add_name = input("학생의 이름을 입력해주세요 : ")
with open('./students/{}.csv'.format(add_name), 'a') as b:
date = str(input("상담 날짜 : "))
content = str(input("상담 내용 : "))
writer = csv.writer(b)
writer.writerow([date, content])
else:
if menu1 == '4':
break

counseling()

답변 1

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

while continue 구문도 검색해보세요.

김데이빗님의 프로필 이미지
김데이빗

작성한 질문수

질문하기