외장함수

 

 

 

 

# 파이썬 외장(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

+ Recent posts