
외장함수
# 파이썬 외장(External)함수
# 실제 프로그램 개발 중 자주 사용
# 종류 : sys, pickle, os, shutil, glob, temfile, time, random 등
외장 함수 기본 실습
외장 함수 설명
중요한 외장 함수
각 함수 예제 실습
os, sys, time중요
# sys : 실행 관련 제어
import sys # 예제1 print(sys.argv) #['/Users/hong-gildong/Desktop/강의자료/예제 소스 파일/chapter08_02.py'] #그냥 실행하면 리스트 형식으로 현재 실행되는 파일이 첫 번째로 온다. #두번째 콤마를 찍고부터는 우리가 실행할 때 전달한 값들을 여기서 받을 수가 있다. #print(sys.argv)는 파이썬 파일을 외부에서 실행할 때 우리가 어떤 함수에서 인자로 넘기듯이 #프로그램을 실행할 때 어떤 값들을 파이썬한테 전달해서 그 값이 1일 경우에는 1번 모드로 실행 #2일 경우에는 2번 모드로 실행... 이런 식으로 어떤 인수(argument)를 받을 수 있다. # 예제2(강제 종료) sys.exit() # 예제3(파이썬 패키지 위치) print(sys.path) #['/Users/hong-gildong/Desktop/강의자료/예제 소스 파일', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python39.zip', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages']
# pickle : 객체 파일 읽기,쓰기 /파이썬에서 읽을 수 있는 데이터 타입(객체,클래스,딕셔너리,리스트,튜플 )을 파일로 쓸 수 있다.
import pickle # 예제4(쓰기) f = open("test.obj", 'wb') #첫번째 인자: 내가 쓰고 싶은 파일에 대한 정보를 기재 확장자도 마음대로하면 된다. #두번째 인자: w(write)b(binary) obj = {1: 'python', 2: 'study', 3: 'basic'} pickle.dump(obj, f) f.close() # 예제5(읽기) f = open("test.obj", 'rb') #rb(read binary) data = pickle.load(f) print(data, type(data)) #{1: 'python', 2: 'study', 3: 'basic'} <class 'dict'> f.close()
# os : 환경 변수, 디렉토리(파일) 처리 관련, 운영체제 작업 관련
# mkdir(폴더를 만듬), rmdir(폴더가 비어있으면 삭제), rename
import os # 예제6 print(os.environ)#environ({'ATOM_HOME': '/Users/hong-gildong/.atom', 'NODE_PATH': '/private/var/folders/22/drls2s456113jcj0ml...',...}) #운영체제에 대한 환경정보가 나옴. 딕셔너리 형태. print(os.environ['USER']) #hong-gildong # 예제7(현재 경로) print(os.getcwd()) #/Users/hong-gildong/Desktop/강의자료 #파이썬이 실행되고 있는 폴더의 경로를 표시
# time : 시간 관련 처리
import time # 예제8 print(time.time()) #1621425213.353282 # 예제9(형태 변환) print(time.localtime(time.time()))#time.struct_time(tm_year=2021, tm_mon=5, tm_mday=19, tm_hour=20, tm_min=53, tm_sec=33, tm_wday=2, tm_yday=139, tm_isdst=0) #현재 시간을 모두 분해해서 보여준다. #class형태로 보여주고 있다. 객체로 나타내고 있다는 것. # 예제10(간단 표현) print(time.ctime()) #Wed May 19 20:53:33 2021 # 예제11(형식 표현) print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) #2021-05-19 20:53:33 # string format time(Year month day Hour Minute Second) # 예제12(시간 간격 발생) for i in range(5): print(i) time.sleep(1) #1초마다 이 for문을 한 번씩 실행한다. 0 1 2 3 4
# random : 난수 리턴
import random # 예제13 print(random.random()) #0.7061171413891826 # 0 ~ 1사이의 실수 # 예제14 print(random.randint(1, 45)) #18 #1 ~ 45 사이의 int값을 랜덤으로 갖고 온다. print(random.randrange(1, 45)) #30 #1 ~ 44 사이의 int값을 랜덤으로 갖고 온다. # 예제15(섞기) iterable(리스트,튜플,셋과 같은 자료에서 사용 가능) /str은 안되더라... d = [1, 2, 3, 4, 5] random.shuffle(d) print(d) #[5, 3, 4, 2, 1] # 예제16(무작위 선택) iterable(리스트,튜플,셋과 같은 자료에서 사용 가능) c = random.choice(d) print(c) #3
# webbrowser : 본인 OS 의 웹 브라우저 실행
import webbrowser # 예제17 webbrowser.open("http://google.com") # 예제18(새창 실행) webbrowser.open_new("http://naver.com")
'Python > Today I learned' 카테고리의 다른 글
TIL#33 CSV 파일 읽기 및쓰기 (0) | 2021.05.19 |
---|---|
TIL#32 파일 읽기 및 쓰기 (0) | 2021.05.19 |
TIL#30 내장함수 (0) | 2021.05.19 |
TIL#29 예외(exception) (0) | 2021.05.19 |
TIL#28 import error 상대경로 절대경로 (0) | 2021.05.18 |