[python] 점프 투 파이썬 공부 - 외장 함수

Jean Young Park·2022년 7월 10일
0

python

목록 보기
15/15

sys

  • 명령 행에서 인수 전달하기
    파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈이다.
    argv_test.py 파일을 C:/doit/Mymod 디렉터리에 저장했다고 가정한다.

    import sys
    print(sys.argv)

    명령 프롬프트 창에서 Mymod 디렉터리로 들어간 뒤 다음과 같이 실행해보자

    C:/doit/Mymod>python argv_test.py you need python
    ['argv_text.py', 'you', 'need', 'python']

    python 명령어 뒤의 모든 것들이 공백을 기준으로 나뉘어서 sys.argv 리스트의 요소가 된다.

  • 강제로 스크립트 종료하기

    >>> sys.exit()
  • 자신이 만들 모듈 불려와 사용하기
    파이썬 모듈들이 저장되어 있는 위치를 나타낸다. 즉 이 위치에 있는 파이썬 모듈은 경로에 상관없이 어디에서나 불러올 수 있다.

    >>> import sys
    >>> sys.paht
    ['', 'C:\\Window\\SYSTEM32\\python37.zip', 'c:\\Python37\\DLLs'...]
    >>>

    위의 예에서 ''는 현재 디렌터리를 말한다.

    import sys
    sys.path.append("C:\doit\Mymod")

    위와 같이 sys.path.append를 사용해 경로 이름을 추가할 수 있다.

pickle

객체의 형태를 그대로 유지하면서 파일에 저장하고 불러올 수 있게 하는 모듈이다. 다음은 pickle 모듈의 dump 함수를 사용하여 딕셔너리 객체인 data를 그대로 파일에 저장하는 방법이다.

>>> import pickle
>>> f = open("test.txt", 'wb')
>>> data = {1: 'python', 2: 'you need'}
>>> pickle.dump(data, f)
>>> f.close()

아래는 pickle.dump로 저장한 파일을 pickle.load를 사용해서 원래 있던 딕셔너리 객체 상태 그대로 불러오는 예이다.

>>> import pickle
>>> f = open("text.txt", rb)
>>> data = pickle.load(f)
>>> print(data)
{1:'python', 2:'you need'}

os

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

  • 내 시스템의 환경 변수 값을 알고 싶을 때 (os.environ)
	>>> import os
	>>> os.environ
	environ({'PROGRAMFILES': 'C:\\Program Files', 'APPDATA': ,,, 생략 ...})
	>>>
다음과 같이 호출 할 수도 있다.
    >>> os.environ['PATH']
    'C:\\ProgramData\\Oracle\\Java\\Javapath; ... 생략 ...'
  • 디렉터리 위치 변경하기 (os.chdir)
	>>> os.chdir("D:\WINDOWS")
  • 디렉터리 위치 돌려받기 (os.getcwd)
	>>> os.getcwd()
	'C:\WINDOWS' //현재 디렉처리 위치에 따라 결과가 다를 수 있음
  • 시스템 명령어 호출하기 (os.system)
    시스템 자체의 프로그램이나 기타 명령어를 파이썬에서 호출할 수도 있다.
	>>> os.system("dir")
  • 실행한 시스템 명령어의 결괏값 돌려받기 (os.popen)
    실행한 결과값을 읽기 모드 형태의 파일 객체로 돌려준다.
	>>> f = os.popen("dir")
읽어 들인 파일 객체의 내용을 보기 위해서는 다음과 같이 하면된다.
	>>> print(f.read())
  • 기타 유용한 od 관련 함수
    • os.mkdir(디렉터리) : 디렉터리를 생성한다.
    • os.rmdir(디렉터리) : 디렉터리를 삭제한다. 단 디렉터리가 비어 있어야 삭제가 가능하다.
    • os.unlink(파일 이름) : 파일을 지운다.
    • os.rename(src, dst) : src라는 이름의 파일은 dst라는 이름으로 바꾼다.

shutil

파일을 복사해 주는 파이썬 모듈
아래 예시는 src라는 이름의 파일을 dst로 복사한다. 만약 dst가 디렉터리 이름이라면 src라는 파일 이름으로 dst 디렉터리에 복사하고 동일한 파일 이름이 있을 경우에는 덮어쓴다.

	>>> import shutil
    >>> shutil.copy("src.txt", "dst.txt")

glob

특정 디렉터리에 있는 파일이름을 모두 알아야하는 경우에 사용한다.

  • 디렉터리에 있는 파일들을 리스트로 만들기 glob(pathname)
    *,? 등 메타 문자를 써서 원하는 파일만 읽어 들일 수 있다.
	>>> import glob
    >>> glob.glob("c:\doit/mark*")
    ['c:/doit\\marks1.py', 'c:/doit\\marks2.py']

tempfile

tempfile.mkstemp()는 중복도지 않는 임시 파일의 이름을 무자가위로 만들어서 돌려준다.

>>> import tempfile
>>> filename = tempfile.mkstemp()
>>> filename
'C:\WINDOWS\TEMP\~275151-0'

tempfile.TemporaryFile()은 임시 저장 공간으로 사용할 파일 객체를 돌려준다. 이 파일은 기본적으로 바이너리 쓰기 모드를 갖는다. f.close()가 호출되면 이 파일 객체는 자동으로 사라진다.

>>> import tempfile
>>> f = tempfile.TemporaryFile()
>>> f.close()

time

  • time.time
    UTC를 사용하여 현재 시간을 실수 형태로 돌려주는 함수이다. 초 단위로 돌려준다.
	>>> import time
    >>> time.time()
    988458015.93417199
  • time.localtime
    time.time()이 돌려준 실수 값을 사용해서 연도, 월, 일, 시, 분, 초 ...의 형태로 바꾸어 준다.
	>>> time.localtime(time.time())
    time.struct_time(tm.year=2013, tm_mon=5, tm_mday=21, tm_hour=16, tm_min=48, tim_sec=42, tm_wday=1, tm_yday=141, tm_isdst=0)
  • time.asctime
    위 time.localtime에 의해서 반환된 튜플 형태의 값을 인수로 받아 알아보기 쉽게 돌려준다.
	>>> time.asctime(time.localtime(time.time()))
    'Sat Apr 28 20:50:20 2001'
  • timectime
    항상 현재 시간만을 돌려준다.
	>>> time.ctime()
    'Sat Apr 28 20:50:20 2001'
  • time.strftime
time.strftime('출력할 형힛 포맷 코드', time.localtime(time.time()))

다음은 time.strftime을 사용하는 예이다.
	>>> import time
    >>> time.strftime('%x', time.localtime(time.time()))
    '05/01/01'
    >>> time.strftime('%c', time.localtime(time.time()))
    '05/01/01 17:22:21'
  • time.sleep
    주로 루프 안에서 많이 사용한다. 일정한 시간 간격을 두고 루프를 실행할 수 있다.
	#sleep.py
	import time
	for i in range(10):
		print(i)
        time.sleep(1)
1초 간격으로 0부터 9까지의 숫자를 출력한다.

calendar

calendar.calendar(연도)로 사용하면 그해의 전체 달력을 볼 수 있다.

>>> import calendar
>>> print(calendar.calendar(2015))

calendar.prcal(연도)를 사용해도 위와 똑같은 결괏값을 얻을 수 있다.

>>> claendar.prcal(2015)
  • calendar.weekday
    그 날짜에 해당하는 요일 정보를 돌려준다. 월요일은 0이다.
	>>> calendar.weekday(2015, 12, 31)
    3 //목요일
  • calendar.monthrange
    입력받은 달의 1일이 무슨 요일인지와 그 달이 몇일까지 있는지를 튜플 형태로 돌려준다.
	>>> calendar.monthrange(2015,12)
    (1,31)

random

아래는 0.0에서 1.0 사이의 실수 중에서 난수 값을 돌려주는 예를 보여 준다.

>>> import random
>>> random.random()
0.543578735435437

다음 예는 1에서 55 사이의 정수 중에서 난수 값을 돌려준다.

>>> random.randint(1, 55)
43

webbrowser

웹 브라우저를 자동으로 실행하고 해당 url로 이동시켜준다.

>>> import webbrowser
>>> webbrowser.open("http://google.com")

open 함수는 웹 브라우저가 이미 ㅣㄹ행된 상태라면 입력 주소로 이동한다. 만약 웹 브라우저가 실행되지 않은 상태라면 새로 웹 브라우저를 실행한 후 해당 주소로 이동한다.
open_new 함수는 이미 웹 브라우저가 실행된 상태이더라도 새로운 창으로 해당 주소가 열리게 한다.

>>> webbrowser.open_new("http://google.com")

0개의 댓글