Lecture 강의

Undergraduates 학부 Graduates 대학원 Lecture 역학 Lecture 설계 Lecture IT(IoT, AI) Lecture SAP2000 Lecture 아바쿠스 Lecture 파이썬 Lecture 엑셀 VBA Lecture 마이다스 Lecture 이탭스

[02. 문법] 2.8 실행 환경 - os, exec, subprocess, 예외(오류) 처리, 에러 종류

작성자 : kim2kie

(2023-02-19)

조회수 : 1030

[참조]

 

다양한 방법으로 파이썬을 실행한다.

 (1) os 모듈
 (2) 다른 파이썬 파일의 실행
 (3) subprocess를 이용한 외부프로그램 실행
(4) 예외 처리
(5) 에러 종류

----------------------------

(1) os 모듈

  • os는 운영체제(operating system) 기능에 대한 간단한 명령을 모아 놓은 기본 모듈이다. 
     
  • Ex)
    os.getcwd() # 현재 작업 디렉터리의 경로 확인. current work directory를 get한다. 
    os.chdir() # 주어진 디렉터리로 작업 경로 변경 

    os.listdir() # 디렉터리를 리스트함
    os.system(명령) # 해당 명령을 터미널에서 실행
    os.mkdirs(), os.makedirs() #새 디렉터리 생성 

    os.remove() # 파일 삭제
    os.rmdir(), os.removedirs() # 디렉터리 제거

    os.rename(), os.renames(), replace() # 파일명 변경

    os.join(), os.split() # 경로를 잇거나 분리
    os.exsits(), os.isfile(), os.isdir() # 경로, 파일, 디렉터리의 존재 확인


    [예제] data0 폴더에 있는 jpg 파일들을 data1 폴더로 이름을 바꾸어서 옮겨라.
            코드 [Link]
            
           


     

 

(2) 다른 파이썬 파일의 실행 

  • 파일을 읽은 다음 exec(commandLines)와 같이 라인단위로 실행하는 명령어를 이용한다.
     

  • Ex)
    f = open('myRCPile.py')
    exec(f.read())
    f.close()

     

(3) subprocess를 이용한 외부프로그램 실행 

  • subprocess.run(,...)는 실행하고 끝날때까지 기다린다(wait).

     

  • Ex)
    import subprocess
    subprocess.run('notepad')

 

(4) 예외 처리 

  • 예외(exception)란 프로그램 실행 도중에 발생하는 오류(error)이다. 
    예를 들면, 0으로 나누기, 존재하지 않는 파일을 열려고 할 때 등이 있다. 
    이러한 예외를 처리할 수 있는 다양한 방법을 제공한다.

     

  • .try-except 구문: try 블록 안에서 예외가 발생하면 except 블록이 실행됩니다.

     

  • Ex)
    try:
        # 예외 발생 가능한 코드
    except 예외 종류1:
        # 예외 종류1 처리 코드
    except 예외 종류2:
        # 예외 종류2 처리 코드
    else:
        # 예외가 발생하지 않았을 때 실행할 코드
    finally:
        # 예외 발생 여부에 상관 없이 항상 실행할 코드

 

(5) 에러 종류 

  • AttributeError: 속성 오류. 객체가 소유한 속성에 접근할 때, 해당 속성이 존재하지 않는 경우 발생한다.

  • ImportError: import 오류. 모듈을 import 하는 과정에서 오류가 발생하는 경우 발생한다.

  • IndexError: 인덱스 오류. 시퀀스 자료형에서 인덱스 범위를 벗어난 경우 발생한다.

  • KeyError: 키 오류. 딕셔너리에서 존재하지 않는 키를 사용하는 경우 발생한다.

  • NameError: 이름 오류. 존재하지 않는 변수나 함수 이름을 사용하는 경우 발생한다.

  • SyntaxError: 구문 오류. 파이썬 코드 구문에 오류가 있는 경우 발생한다. 예) 괄호의 짝이 맞지 않는 경우 등이 있다.

  • TypeError: 타입 오류. 잘못된 타입의 값이 전달된 경우 발생한다. 예) 숫자와 문자열을 더하는 경우 등이 있다.

  • ValueError: 값 오류. 값을 잘못 전달하거나 처리하는 경우 발생

  • ZeroDivisionError: 0으로 나누기 오류. 숫자를 0으로 나누는 경우 발생한다.