Information Security

외장 함수 본문

Python

외장 함수

leeeeye321 2017. 4. 1. 02:30

외장 함수

-내부 기능을 확장하여 추가 기능을 사용할 수 있도록 도와주는 역할을 한다.

-다양한 모듈을 지원하며 사용자가 작성한 모듈도 사용할 수 있다.

-import가 필요한 모듈이다.

 

sys

(System specific parameters and functions)

-파이썬 인터프리터가 제공하는 변수들과 함수들을 제어할 수 있게 해주는 모듈이다.

 

sys.argv: 명령행에서 인자를 전달

-python 소스 수행 시, 명령형 타입의 인자를 받을 수 있도록 지원한다.

 

1. 위와 같이 입력한 파이썬 프로그램을 C:/python 디렉터리에 저장한다.

2. 도스 창을 열고, 파이썬 프로그램이 위치한 폴더로 이동한다. 

3. sysargv_test.py 뒤에 넣어준 인자들은 리스트 sys.argv에 저장된다.

4. python 명령어 뒤의 모든 값들이 공백을 기준으로 나뉘어서 리스트의 요소가 되어 출력된다.

 

-인자를 입력하여 리스트 sys.argv에 저장하고 for 문을 이용하여 하나씩 출력하기

 

sys.exit: 소스 수행 도중 프로그램 강제 종료

 -while 문에서의 break 문은 while 문을 빠져나가지만 sys.exit()는 프로그램을 강제로 종료시킨다.

 

OS

(Miscellaneous operating system interface)모듈

-OS 모듈은 환경 변수나 디렉터리, 파일 등의 OS자원을 제어할 수 있게 해주는 모듈이다.

 

1. 운영체제 관련 작업

os.name: 현재 동작하는 운영체제가 무엇인지 알려준다.

※nt: Windows NT 

 

os.environ: 시스템의 환경 변수값을 보여준다.

-os.environ은 환경 변수에 대한 정보를 딕셔너리 형태로 출력한다.

 

2. 디렉터리(폴더) 관리

os.getcwd(): 현재 디렉터리의 위치를 리턴한다.

 

os.mkdir("디렉터리명"): 디렉터리 만들기

 

os.rmdir("디렉터리명"): 디렉터리 삭제하기

-디렉터리가 비어 있어야 삭제할 수 있다.

 

-"C:\\python\\test"와 같이 경로를 다 작성하면 번거롭고 불편하다.

-'.'은 현재 디렉터리를 의미하고 '..'은 상위 디렉터리를 의미하므로 이를 사용하면 디렉터리 명을 쓸 때 편리하다.

 

os.chdir("디렉터리명"): 디렉터리의 위치 변경

-상위 디렉터리로 위치를 변경했다.

 

3. 파일 관련 기능

os.listdir(): 현재 디렉터리의 파일, 디렉터리 리스트를 리턴한다.

 

os.rename(파일명, 새로운파일명): 파일을 새로운 이름으로 변경한다.

 

os.replace(파일명, 새로운파일명): 파일을 새로운 이름으로 변경한다.

-현재 디렉터리의 test로 exam-001.py를 이동시켰다.

-replacerename은 파일 이름 변경과 파일의 위치를 이동시키는 동작을 수행한다.

 

os.unlink(파일명): 파일 삭제

 

4. 시스템 명령어 연계

-운영체제에게 명령을 준다.

 

os.system(): 시스템 자체 프로그램이나 기타 명령어들을 파이썬에서 호출할 수 있다.

-메모장 호출하기

 

os.popen(): 시스템 명령어를 수행하고, 그 결과를 읽기 모드 형태의 파일 객체로 리턴한다.

-파일 객체의 내용을 보기 위해서 read()를 사용한다.

 

time

(Time access and conversions)

-시간에 관련된 기능을 제공하는 모듈이다.

 

time.time(): UTC(Universal Time Coordinated: 협정 세계 표준시)를 이용하여 현재 시간을 실수 형태로 리턴하는 함수이다. 1970년 1월 1일 0시 0분 0초를 기준으로 지난 시간을 초 단위로 리턴한다.

 

-random()처럼 난수 발생 시 많이 사용한다. 위와 같이 입력하면 0~9까지의 난수를 발생시킬 수 있다. 

 

time.localtime(): time.time()에 의해서 반환된 값을 이용하여 연도, 월, 일, 시, 분, 초의 형태로 변경한다.

 

time.asctime(): time.localtime()에 의해서 반환된 튜플 형태의 값을 받아서 날짜, 시간을 보기 쉬운 형태로 출력한다.

-보기 쉬운 형태로 출력되긴 했지만 너무 길어서 입력하기가 불편하다. 간단하게 입력하려면 time.ctime()을 사용해야 한다.

 

time.ctime(): time.asctime()을 간편하게 입력하기 위해 사용한다.  

-time.asctime()과 다르게 항상 현재 시간만을 리턴한다.

-이러한 날짜, 시간 표시 형태는 보기에 쉽긴 하지만 서양 사람에게 더 익숙하다. 우리에게 익숙한 날짜, 시간 형태를 사용하려면 time.strftime()을 사용해야 한다.

 

time.strftime()

사용방법: time.strftime("포맷코드", time.local(time.time()))

 

시간에 관련된 것을 표현하는 포맷 코드

코드 

설명

%a/ %A 

요일 줄임말/ 요일

%b/ %B 

달 줄임말/ 달

%c 

날짜와 시간

%d 

%H/ %I 

시간(hour)-24시간 /12시간 출력 형태  

%j

1년 중 누적 날짜 

%m 

달 

%M 

분 

%p

AM or PM 

%S

초 

%U

1년 중 누적 주- 일요일을 시작으로  

%w

숫자로 된 요일 

%W 

1년 중 누적 주- 월요일을 시작으로 

%x/ %X

현재 설정된 로케일에 기반한 날짜/ 시간 출력

%Y

연도 출력 

%Z 

시간대 출력 

%%

문자 

%y 

세기 부분을 제외한 연도출력 

 

time.sleep(초): 설정된 시간만큼 시간을 지연한다.

-루프 안에서 많이 사용한다. 일정한 시간 간격을 두고 루프를 실행할 수 있다.

-1초 간격으로 0부터 9까지를 출력한다.

 

Calendar

-달력에 관련된 기능을 제공하는 모듈이다.

 

calendar.calendar(연도), calendar.prcal(연도): 주어진 연도의 달력을 출력한다.

 

calendar.prmonth(연도, 월): 주어진 연도의 월에 대한 달력을 출력한다.

 

calendar.weekday(연도, 월, 일): 주어진 날짜가 어떤 요일인지를 리턴한다.(월:0 ~ 일:6)

 

calendar.monthrange(연도, 월): 주어진 연도, 월이 어느 요일에 시작하며, 며칠까지 있는지를 튜플 형태로 리턴한다.

-4월은 금요일(5)에 시작하고, 30일까지 있다.

 

날짜를 입력받아서 요일 출력하기

 

random

(Generate pseudo-random numbers)

-난수(규칙이 없는 임의의 수)를 발생시키는 모듈이다.

 

random.random(): 0 ~ 1.0 사이 임의의 난수를 리턴한다.

 

random.randint(start, stop): start ~ stop 사이의 정수 중에서 임의의 난수를 리턴한다.

 

random.randrange(start, stop, step): start ~ stop 사이의 step 만큼 건너뛴 정수 중에서 임의의 난수를 리턴한다.

 

random.shuffle(리스트): 주어진 리스트의 요소들을 섞는다.

 

random.choice(리스트): 주어진 리스트의 요소를 무작위로 선택한다.

 

pickle

(Python object serialization)

-객체의 형태를 유지하면서 파일에 저장하고, 불러올 수 있게 해주는 모듈이다.

 

pickle.dump(데이터, 파일변수): 데이터를 파일에 저장한다.

-pickle 모듈의 dump 함수 이용하여 딕셔너리 데이터가 저장된 객체 data를 파일에 저장한다.

 

pickle.load(파일변수): 저장된 내용을 불러온다.

 

tempfile

tempfile.mktemp(): 중복되지 않는 임시 파일의 이름을 생성한다.

 

tmepfile.NamedTemporaryFile(): 임시 저장 공간으로 사용될 파일 객체를 리턴한다. f.close()가 호출되면 이 파일 객체는 자동으로 사라진다.

'Python' 카테고리의 다른 글

내장 함수  (0) 2017.03.31
예외 처리  (0) 2017.03.30
File  (0) 2017.03.29
Module  (0) 2017.03.28
Class  (0) 2017.03.24