<목차>
외장함수
sys 모듈
: 시스템과 관련된 함수나 변수를 담고 있는 모듈.
- sys.exit함수 : 파이썬 프로그램 자체를 종료시킴.
import sys
print(list(zip([1, 2, 3],[4, 5, 6], [7, 8, 9])))
sys.exit()
print(list(zip("abc","def")))
결과값
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
An exception has occurred, use %tb to see the full traceback.
SystemExit
C:\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py:3452: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D. warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)
- sys.path 변수 : 모듈이 저장되어 있는 경로를 반환.
print(sys.path)
결과값
['C:\\Users\\고유정\\python', 'C:\\Anaconda3\\python39.zip', 'C:\\Anaconda3\\DLLs', 'C:\\Anaconda3\\lib', 'C:\\Anaconda3', '', 'C:\\Anaconda3\\lib\\site-packages', 'C:\\Anaconda3\\lib\\site-packages\\locket-0.2.1-py3.9.egg', 'C:\\Anaconda3\\lib\\site-packages\\win32', 'C:\\Anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\Anaconda3\\lib\\site-packages\\Pythonwin', 'C:\\Anaconda3\\lib\\site-packages\\IPython\\extensions', 'C:\\Users\\고유정\\.ipython']
pickle 모듈
: 객체의 형태를 그대로 유지하면서 파일에 저장하고 불러올 수 있게 해주는 모듈.
'''
hello.txt파일에
hello라는 내용을 쓰고 저장.
'''
f = open('hello.txt', 'w')
f.write("hello")
f.close()
'''
list.txt파일에
list라는 내용을 쓰고 저장.
'''
with open ('list.txt', 'w') as f:
f.write(['a', 'b', 'c'])
- pickle. dump 와 wb(바이너리) 파일
- 파일을 확인해보면 파일이 깨짐
- 바이너리 파일이기 때문에 시스템만 인식을 할 수 있음.
- 우리가 아는 문자는 ASCII Text파일.
- 파일을 확인해보면 파일이 깨짐
'''
pickle 모듈을 불러오기.
with문으로 파일 열기(모드에 wb가 와야 함.)
pickle 모듈의 dump함수를 사용.
- 인자를 두개 사용
- 첫 번째 인자에는 리스트
- 두 번째 인자에는 with문으로 불러들인 변수
'''
import pickle
with open ('list.txt', 'wb') as f: #pickle모듈 사용시 모드에 'wb'입력.
pickle.dump (['a', 'b', 'c'],f )
파일 모드
- r : 읽기모드
- w : 쓰기모드
- x : 쓰기모드(파일이 있으면 오류 발생)
- a : 추가모드(파일이 있으면 뒤에 내용을 추가)
- + : 읽기, 쓰기 모드
- t : 텍스트 모드
- b : 바이너리 모드 (바이너리 파일은 사용자가 읽을 수 없음.)
§ ascll 모드로 불러오기 . - 객체 형태를 그대로 유지(pickle모듈)
• pickle 모듈을 사용하여 데이터를 불러올 경우 변수 지정을 해줘야 함.
'''
with문으로 파일 열기(모드에 rb가 와야 함.)
pickle모듈의 load함수 사용.
- 입력값으로 파일을 열 때 사용했던 변수를 사용.
- data변수에 저장.
data를 출력.
'''
import pickle
with open("list.txt", 'rb') as f :
data = pickle.load(f)
print(data)
['a', 'b', 'c']
print(data) #data에 이미 내용이 들어가 있으므로 with문 밖에서도 출력가능.
['a', 'b', 'c']
OS모듈
: 운영체제를 제어할 때 사용하는 모듈 _ 실전에서 많이 사용됨.
getcwd 함수 :작업 폴더 확인(현재 작업하고 있는 디렉토리 확인).
import os
os.getcwd()
'C:\\Users\\고유정\\python'
chdir 함수 : 작업 폴더 이동.
os.chdir('C:\\Users\\고유정') #입력값으로 상위 경로 입력. 문자열이기 때문에 '' 콤마 주의해야됨.
os.getcwd()
'C:\\Users\\고유정'
os.chdir('C:\\Users\\고유정\\python')
os.getcwd()
'C:\\Users\\고유정\\python'
시스템 명령어 호출 _ cmd창에서 사용(jupyter notebook에서 사용 안됨)
cmd or terminal 창에서 python 실행 후 실습
- 윈도우 : dir 명령어, cls 명령어
- mac(linux) : ls 명령어, clear 명령어
윈도우 실습
- >>>import os
- >>>os.system('dir')
- >>>os.system('cls')
mkdir함수 :폴더 생성.
os.mkdir('test_folder')
rmdir함수: 폴더 제거. _ 폴더 내부에 파일이 없을 경우만 가능.
os.rmdir('test_folder')
unlink 함수: 파일 제거.
# with open('foo.txt.', 'w') as f:
# f.write("hi")
os.unlink('foo.txt') # 확장자 명까지 입력해줘야 함.
rename 함수 : 파일 이름 변경.
- 인자 2개 필요.(파뀌기 전 파일명, 바꾼 후 파일명)
os.rename('list.txt' , 'list2.txt')
shutil 모듈
copy 함수 : 파일을 복사. _ 복사 결과 파일과 이름이 같은 파일이 있을 경우 덮어써짐.
• 인자 2개 필요.(복사대상, 복사 결과 파일)
import shutil
shutil.copy ('list2.txt', 'list.txt')
'list.txt'
glob 모듈
: 폴더와 파일 이름을 입력하면 해당 조건에 맞는 파일의 전체 이름 검색
glob 함수
: list로 시작하는 모든 파일 검색(파일의 전체이름)
: 경로\\list*
import glob
glob.glob('C:\\Users\\고유정\\python\\list*') # 리스트 형태로 출력됨.
['C:\\Users\\고유정\\python\\list.txt', 'C:\\Users\\고유정\\python\\list2.txt']
random 모듈
: 규칙이 없는 숫자를 발생.
random함수 : 0과 1 사이의 실수가 반환. (1은 나오지 않음)
import random
print(random.random())
0.5276531448673321
random.random()
0.9110682156140525
: 입력시마다 다르게 변화.
randint함수
• 인자를 2개 사용(최소값, 최대값)
random.randint(1, 10)
random.randint(1, 10)
10
4
: 입력시마다 다르게 변화.
random.randint(1, 19.5) # 오류 발생. _ 정수만 사용가능.
ValueError
: non-integer stop for randrange()
uniform 함수 : 무작위 실수 발생.
• 인자를 2개 사용(최소값, 최대값)
random.uniform(10, 20) # 10과 20이 포함되어서 램덤으로 출력됨.
16.184382078216707
choice 함수 : 무작위로 하나를 고르는 함수
무작위 뽑기. (문자도 가능함)
• choice함수를 사용하지 않았을 때
data = [1, 2, 3]
def random_pop(i) :
number = random.randint(0,len(i)-1) # 0부터 2까지 숫자 정수 아무거나 하나 뽑기. _ 리스트 data의 인덱스
return i.pop(number)
while data : #pop()함수로 data 요소가 하나씩 없어지므로 while 구문이 True가 끝날 때까지 즉, 리스트가 비워질 때 까지 실행됨.
print(random_pop(data))
3
1
2
• choice를 사용했을때
data = [1, 2, 3] # random.choice(자료형)
def random_pop(i):
number= random.choice(i)
i.remove(number) # data를 튜플로 만들면 choice는 가능하나 remove가 불가능함.
return number
while data : # while bool(data) == True:
print(random_pop(data))
1
2
3
shuffle 함수 : 무작위 숫자 섞기
data = [1, 2, 3, 4]
random.shuffle(data)
print(data)
[4, 3, 2, 1]
Uploaded by N2T