## 점프 투 파이썬 - 외장 함수 ( 1 )
https://github.com/integerJI/blahblah_jeong
여러 가지 라이브러리를 살펴보자.
sys - 변수와 함수를 직접 제어할 수 있게 해 준다.
명령 행에서 인수 전달하기 - sys.argv
#test.py
import sys
print(sys.argv)
C:/User/home > python test.py abc pey guido
['test.py', 'abc', 'pey', 'guido']
# 명령 프롬프트 창에서는 /, \든 상관없지만, 소스코드 안에서는 반드시 / 또는 \\ 기호를 사용해야 한다.
강제로 스크립트 종료하기 - sys.exit
sys.exit
Ctrl+Z나 Ctrl+D를 눌러서 대화형 인터프리터를 종료하는 것과 같다.
프로그램 파일 안에서 사용하면 프로그램을 중단시킨다.
자신이 만든 모듈 불러와 사용하기 - sys.path
import sys
sys.path
['', 'C:\\Windows\\SYSTEM32\\python37.zip', 'c:\\Python37\\DLLs',
'c:\\Python37\\lib', 'c:\\Python37', 'c:\\Python37\\lib\\site-packages']
sys.path는 파이썬 모듈들이 저장되어 있는 위치를 나타낸다.
''는 현재 디렉터리를 말한다.
경로 이름 추가하기 - sys.path.append
import sys
sys.path.append("C:/doit/mymod")
추가하면 디렉터리에 있는 파이썬 모듈을 불러와 사용할 수 있다.
pickle - 객체의 형태를 그대로 유지하면서 파일에 저장하고 불러올 수 있게 하는 모듈이다.
import pickle
f = open("test.txt", 'wb')
data = {1: 'python', 2: 'you need'}
pickle.dump(data, f)
f.close()
pickle 모듈의 dump 함수를 사용하면 딕셔너리 객체인 data를 그대로 파일에 저장하는 방법을 보여 준다.
import pickle
f = open("test.txt", 'rb')
data = pickle.load(f)
print(data)
{2:'you need', 1:'python'}
pickle.dump로 저장한 파일을 pickle.load를 사용해서 원래 있던 딕셔너리 객체(data) 상태 그대로 불러온다.
딕셔너리 객체를 사용했지만 어떤 자료형 이든 저장하고 불러올 수 있다.
os - 환경 변수나 디렉터리, 파일 등의 OS 자원을 제어할 수 있게 해주는 모듈이다.
내 시스템의 환경 변수값을 알고 싶을 때 - os.environ
import os
os.environ
environ({'PROGRAMFILES': 'C:\\Program Files', 'APPDATA': … 생략 …})
os.environ은 환경 변수에 대한 정보를 딕셔너리 객체로 돌려준다.
os.environ['PATH']
'C:\\ProgramData\\Oracle\\Java\\javapath;...생략...'
# 객체가 딕셔너리이기 때문에 이렇게 호출할 수 있다.
디렉터리 위치 변경하기 - os.chdir
os.chdir("C:\WINDOWS")
# 현재 디렉터리 위치를 변경
디렉터리 위치 돌려받기 - os.getcwd
os.getcwd()
'C:\WINDOWS'
# 자신의 디렉터리 위치 표시
시스템 명령어 호출하기 - os.system
os.system("dir")
시스템 자체의 프로그램이나 기타 명령어를 파이썬에서 호출할 수도 있다.
os.system("명령어")처럼 사용하며 현재 디렉터리에서 시스템 명령어 dir을 실행하는 예이다.
실행한 시스템 명령어의 결괏값 돌려받기 - os.popen
f = os.popen("dir")
# 시스템 명령어를 실행한 결괏값을 읽기 모드 형태의 파일 객체로 돌려준다.
print(f.read())
# 읽어 들인 파일 객체의 내용을 보기 위한 방법
기타 유용한 os 관련 함수
함수 | 설명 |
os.mkdir(디렉터리) | 디렉터리를 생성한다. |
os.rmdir(디렉터리) | 디렉터리를 삭제한다. 단, 디렉터리가 비어있어야 삭제가 가능하다. |
os.unlink(파일) | 파일을 지운다. |
os.rename(src, dst) |
src라는 이름의 파일을 dst라는 이름으로 바꾼다. |
shutil - 파일을 복사해 주는 파이썬 모듈이다.
import shutil
shutil.copy("src.txt", "dst.txt")
src라는 이름의 파일을 dst로 복사한다.
dst가 디렉터리 이름이라면 src라는 파일 이름으로 dst 디렉터리에 복사한다.
동일한 파일 이름이 있을 경우 덮어쓴다.
glob - 디렉터리에 있는 파일들을 리스트로 만든다.
import glob
glob.glob("c:/doit/mark*")
['c:/doit\\marks1.py', 'c:/doit\\marks2.py', 'c:/doit\\marks3.py']
C:/doit 디렉터리에 있는 파일 중 이름이 mark로 시작하는 파일을 모두 찾아서 읽어 들인다.
glob 모듈은 디렉터리 안의 파일들을 읽어서 돌려준다. *, ? 등 메타 문자를 써서 원하는 파일만 읽어 들일 수도 있다.
tempfile - 파일을 임시로 만들어서 사용할 때 유용한 모듈이다.
import tempfile
filename = tempfile.mkstemp()
filename
'C:\WINDOWS\TEMP\~-275151-0'
tempfile.mkstemp()는 중복되지 않는 임시 파일의 이름을 무작위로 만들어서 돌려준다.
import tempfile
f = tempfile.TemporaryFile()
f.close()
tempfile.TemporaryFile()은 임시 저장 공간으로 사용할 파일 객체를 돌려준다.
이 파일은 기본적으로 바이너리 쓰기 모드(wb)를 갖는다.
f.close()가 호출되면 이 파일 객체는 자동으로 사라진다.
'코딩공부 > 점프 투 파이썬' 카테고리의 다른 글
## 점프 투 파이썬 - 3과 5의 배수 합하기 (0) | 2020.02.25 |
---|---|
## 점프 투 파이썬 - 내가 프로그램을 만들 수 있을까? (0) | 2020.02.21 |
## 점프 투 파이썬 - 내장 함수 ( 2 ) (0) | 2020.02.10 |
## 점프 투 파이썬 - 내장 함수 ( 1 ) (0) | 2020.02.09 |
## 점프 투 파이썬 - 예외 처리 (0) | 2020.02.07 |