ch0nny_log

[빅데이터분석] Python_23. 예외처리 이해하기 ③ (try~except~finally) 본문

빅데이터 분석(with 아이티윌)/python

[빅데이터분석] Python_23. 예외처리 이해하기 ③ (try~except~finally)

chonny 2024. 8. 8. 14:13

 

1. 리소스 정리가 필요한 경우: 파일을 여는 코드가 앞에 있었는데 코드가 끝나면 반드시 파일을 닫아야 하는 경우

2. 네트워크 연결을 했을 경우: 네트워크 연결을 해서 어떤 작업을 했는데 프로그램이 끝나면 반드시 네트워크를 끊어야하는 경우)

try:
    # 파일 열기
    file = open("c:\\data\\jobs.txt", "r", encoding="utf-8")
    
    # 파일 읽기
    content = file.read()
    
    # 파일 내용 출력
    print(content)

except FileNotFoundError:
    print("파일을 찾을 수 없습니다.")

finally:
    # 파일이 열려 있다면 닫기
    if 'file' in locals() and not file.closed:
        file.close()
        print("파일을 닫았습니다.")

try:
    # 사용자로부터 입력 받기
    number1 = int(input("첫 번째 숫자를 입력하세요: "))
    number2 = int(input("두 번째 숫자를 입력하세요: "))
    
    # 나누기 수행
    result = number1 / number2
    print(result)
except ValueError:
    # 입력값이 정수가 아닐 때 처리
    print("유효한 숫자가 아닙니다. 다시 시도하세요.")
    
except ZeroDivisionError:
    # 두 번째 숫자가 0일 때 처리
    print("0으로 나눌 수 없습니다. 다른 숫자를 입력하세요.")

    
finally:
        print("프로그램을 종료합니다.")

문제1. c드라이브-> data 폴더에 있는 텍스트 파일을 여는 프로그램을 작성하는데 다음과 같이 '파일 이름을 입력하세요~' 라는 메시지가 출력되게 하고 파일이름을 입력하면 해당 파일 내용을 출력하게 하시오. 만약 해당 파일이 없으면 파일을 찾을 수 없습니다. 라는 메시지가 출력되게 하고 파일이 없던간에 프로그램이 끝나면 '파일 읽기 작업이 종료되었습니다.' 라는 메세지가 출력되게하시오. 

try:
    # 파일 이름 물어보기
    file_name = input('파일 이름을 입력하세요.')
    # 파일 열기 (UTF-8 인코딩을 사용)
    file = open("c:\\data\\" + file_name, "r", encoding="utf-8")
    
    # 파일 읽기
    content = file.read()
    
    # 파일 내용 출력
    print(content)

except FileNotFoundError:
    print("파일을 찾을 수 없습니다.")


finally:
    # 파일이 열려 있다면 닫기
    if file:
        file.close()
    print("파일을 닫았습니다.")
    print("파일 찾기가 종료되었습니다.")​