티스토리 뷰

728x90

"""

20200819

파이썬 공부 20일차

"""

 

오 드디어 공부 한 순수 날짜 20일 됐당 ㅇㅅㅇr

열이 38도까지 올라갔는데 올라간지도 몰랐음..;

 

외장 함수

# sys

sys 모듈은 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈이다.

import sys

print(sys.argv)
>>> ['/저장경로/20200819.py']

 

# 강제로 스크립트 종료; sys.exit

sys.exit는 ctrl + z나 ctrl + d를 눌러 대화형 인터프리터를 종료하는 것과 같은 기능이다.

프로그램 파일 안에서 사용하면 프로그램을 중단시킨다.

 

# 자신이 만든 모듈 불러와 사용; sys.path

sys.path는 파이썬 모듈들이 저장되어 있는 위치를 나타낸다.

이 위치에 있는 파이썬 모듈은 경로에 상관없이 어디에서나 불러올 수 있다.

import sys

print(sys.path)
>>> ['/저장경로/', ..., 'Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages']

파이썬 프로그램 파일에서 sys.path.append를 사용해 경로 이름을 추가할 수 있다.

하고 난 후에 디렉터리에 있는 파이썬 모듈을 불러와서 사용할 수 있다.

 

# pickle

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를 사용해서 원래 있던 딕셔너리 객체(data) 상태 그대로 불러오는 예시다.

import pickle

f = open("test.txt", 'rb')
data = pickle.load(f)

print(data)
>>> {1: 'python', 2: 'you need'}

예시에선 딕셔너리 객체를 불러왔지만 딕셔너리 객체 뿐만 아니라 어떤 자료형이든 저장하고 불러올 수 있다.

 

# OS

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

 

# 내 시스템의 환경 변수 값을 알고 싶을 때; os.environ

시스템은 제각기 다른 환경 변수 값을 가지고 있는데, os.environ은 현재 시스템의 환경 변수 값을 보여준다.

import os

print(os.environ)
>>> environ({'USER': 'yoonjeonghyeon', ..., '_': '/usr/local/bin/python3'})

os.environ은 환경 변수에 대한 정보를 딕셔너리 객체로 돌려준다.

돌려받은 객체가 딕셔너리이기 때문에 다음과 같이 호출될 수 있다.

print(os.environ['PATH'])
>>> /Library/Frameworks/Python.framework/ ... / Versions/3.8/bin

 

# 디렉터리 위치 변경하기; os.chdir

os.chdir를 사용하면 현재 디렉터리 위치를 변경할 수 있다.

 

# 디렉터리 위치 돌려받기; os.getcwd

os.getcwd는 현재 자신의 디렉터리 위치를 돌려준다.

 

# 시스템 명령어 호출하기; os.system

시스템 자체의 프로그램이나 기타 명령어를 파이썬에서 호출할 수 있다.

os.system("명령어")처럼 사용한다.

 

# 실행한 시스템 명령어의 결괏값 돌려받기; os.popen

os.popen은 시스템 명령어를 실행한 결괏값을 읽기 모드 형태의 파일 객체로 돌려준다.

읽어들인 파일 객체의 내용을 보기 위해서는 다음과 같이 한다.

 

print(f.read())

 

# 기타 os 관련 함수

  1. os.mkdir(디렉터리); 디렉터리 생성
  2. os.rmdir(디렉터리); 디렉터리 삭제, 단 디렉터리가 비어 있어야 삭제 가능
  3. os.unlink(파일 이름); 파일을 지움
  4. os.rename(src, dst); src라는 이름의 파일을 dst라는 이름으로 바꿈

 

# shutil

shutil은 파일을 복사해 주는 파이썬 모듈이다.

import shutil

shutil.copy('src.txt', 'dst.txt')

src라는 이름의 파일을 dst로 복사하는 예시다.

dst가 디렉터리 이름이라면 src라는 파일 이름으로 dst 디렉터리에 복사하고 동일한 파일 이름이 있을 경우에는 덮어쓴다.

 

# glob

파일을 읽고 쓰는 기능이 있는 프로그램을 만들다 보면 특정 디렉터리에 있는 파일 이름 모두를 알아야 할 때가 있는데,

이럴 때 사용하는 게 glob 모듈이다.

 

# 디렉터리에 있는 파일들을 리스트로 만들기; glob(pathname)

glob 모듈은 디렉터리 안의 파일들을 읽어서 돌려준다. *,? 등 메타 문자를 써서 원하는 파일만 읽어 들일 수도 있다.

import glob

print(glob.glob('/저장경로/2020*'))
>>> ['/저장경로/20200819.py', ..., '/저장경로/20200810.py']

내 맥북의 파이썬 폴더 중 8월에 공부한 py 파일을 모두 찾아서 읽어들이는 예시다.

 

# tempfile

파일을 임시로 만들어서 사용할 때 유용한 모듈이 tempfile 모듈이다.

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

import tempfile

filename = tempfile.mkstemp()
print(filename)
>>> (5, '/var/folders/hj/xl8wwbwn561b83pg078rq2n40000gn/T/tmppig7o_go')

tempfile.TemporaryFile()은 임시 저장 공간으로 사용할 파일 객체를 돌려준다.

이 파일은 기본적으로 바이너리 쓰기 모드(wb)를 갖는다.

f.close()가 호출되면 이 파일 객체는 자동으로 사라진다.

import tempfile

f = tempfile.TemporaryFile()
f.close() # 생성한 임시 파일이 자동으로 삭제됨

 

# time

time.time()은 UTC(Univerrsla Time Coordinated; 협정 시계 표준시)를 사용, 현재 시간을 실수 형태로 돌려주는 함수다.

1970년 1월 1일 0시 0분 0초를 기준으로 지난 시간을 초 단위로 돌려준다.

import time

print(time.time())
>>> 1597828542.922859

 

# time.localtime

time.localtime은 time.time()이 돌려준 실수 값을 사용해서 연도, 월, 일, 시, 분, 초, ...의 형태로 바꾸어 주는 함수다.

print(time.localtime(time.time()))
>>> ime.struct_time(tm_year=2020, tm_mon=8, tm_mday=19, tm_hour=18, tm_min=16, tm_sec=49, tm_wday=2, tm_yday=232, tm_isdst=0)

 

# time.asctime

time.localtime에 의해서 반환된 튜플 형태의 값을 인수로 받아서 날짜와 시간을 알아보기 쉬운 형태로 돌려주는 함수다.

print(time.asctime(time.localtime(time.time())))
>>> Wed Aug 19 18:17:46 2020

 

# time.ctime

time.ascgtime(time.localtime(time.time())) time.ctime을 사용해 간편하게 표시할 수 있다.

asctime과 다른 점은 ctime은 항상 현재 시간만을 돌려준다.

print(time.ctime())
>>> Wed Aug 19 18:19:10 2020

 

# time.strftime

time.strftime('출력할 형식 포맷 코드', time.localtime(time.time()))로 사용하고,

strftime 함수는 시간에 관계된 것을 세밀하게 표현하는 여러 가지 포맷 코드를 제공한다.

코드

설명

예시

%a

요일 줄임말

Mon

%A

요일

Monday

%b

달 줄임말

Jan

%B

January

%c

날짜와 시간을 출력함

Wed Aug 19 20:37:20 2020

%d

날(Day)

[01,31]

%H

시간(Hour): 24시간 출력 형태

[00,23]

%I

시간(Hour): 12시간 출력 형태

[01,12]

%j

1년 중 누적 날짜

[001,366]

%m

[01,12]

%M

[01,59]

%p

AM or PM

AM

%S

[00,59]

%U

1년 중 누적 주: 일요일을 시작으로

[00,53]

%w

숫자로 된 요일

[0(일요일),6]

%W

1년 중 누적 주: 월요일을 시작으로

[00,53]

%x

현재 설정된 지역에 기반한 날짜 출력

Wed Aug 19

%X

현재 설정된 지역에 기반한 시간 출력

20:38:37

%Y

연도 출력

2020

%Z

시간대 출력

대한민국 표준시

%%

문자

%

%y

세기 부분을 제외한 연도 출력

20

 

 

# time.strftime 사용 예

import time

print(time.strftime('%x', time.localtime(time.time())))
print(time.strftime('%c', time.localtime(time.time())))
>>> 08/19/20
>>> Wed Aug 19 18:24:40 2020

 

# time.sleep

time.sleep 함수는 주로 루프 안에서 많이 사용한다.

이 함수를 사용하면 일정한 시간 간격을 두고 루프를 실행할 수 있다.

import time

for i in range(10):
	print(i)
	time.sleep(1)
>>> 1초 간격으로 0부터 9까지의 숫자를 출력

 

time.sleep 함수의 인수는 실수 형태를 쓸 수 있다.

 

5장 오늘 끝낼라했는데 이거 또 많아서 2개로 쪼개버리기..

끝..

 

728x90

'🐍파이썬 > 📕점프 투 파이썬' 카테고리의 다른 글

22. 챕터 5 연습문제  (0) 2020.12.24
21. 외장 함수 2  (0) 2020.12.24
19. 내장함수 2  (0) 2020.12.23
18. 내장함수1  (0) 2020.12.23
17. 예외처리  (0) 2020.12.16
댓글
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Total
Today
Yesterday