외장함수
웹상에 python module index 를 검색하여 파이썬 라이브러리에서 필요한 것들을 가져와서 사용할 수 있다.
sys
: 프로그램 실행시 입력된 값을 읽어들일 수 있는 모듈
sys.argv
: 명령행을 통해 필요한 인자값을 받을 수 있다.
*argv: argument values(인자값)
아래와 같은 argv_test.py를 만들어 주고
#argv_test.py
import sys
print(sys.argv)
명령창에서 위 모듈이 저장된 파일위치에 다음과 같이 적어주면
(base)C:\python\python_practice>argv.test.py a b c
뒤의 것들이 공백을 기준으로 나뉘어 sys.argv 리스트의 요소가 된다.
['C:\\python\\python_practice\\argv.test.py', 'a', 'b', 'c']
argv_test.py 모듈창에 print(sys.argv[1])을 추가해주면
#argv_test.py
import sys
print(sys.argv)
print(sys.argv[1])
['C:\\python\\python_practice\\argv.test.py', 'a', 'b', 'c']
a
리스트에서 [1]번째 값인 'a'를 출력하는 것을 확인할 수 있다.
기본적으로 len(sys.argv)의 값은 1인데 인자값을 추가함에 따라 바뀌게 된다.
# argv_test.py
import sys
print('sys.argv 길이는? ', len(sys.argv))
(base)C:\python\python_practice>argv.test.py a b c
sys.argv 길이는? 4
sys.exit
: 강제로 스크립트 종료하기
ctrl Z / ctrl D 를 눌러서 대화형 인터프리터를 종료하거나, 실행중인 프로그램에서 해당 프로그램을 중단하는 것과 같다
sys.path
: 파이썬 모듈이 저장되어있는 위치를 나타낸다
이 위치에 있는 모듈들은 경로에 상관없이 어디서나 불러올 수 있다.
그리고 파이썬 프로그램 파일에서 sys.path.append를 통해 경로명을 추가할 수 있다.
os 모듈
: 환경변수나 디렉터리, 파일 등의 os자원을 제어할 수 있게 해주는 모듈
os.environ
: 현재 시스템의 환경변수 값을 보여준다
import os
os.environ
environ{'ADSK_CLM_WPAD_PROXY_CHECK': 'FALSE',
'ALLUSERSPROFILE': 'C:\\ProgramData',
'APPDATA': 'C:\\Users\\User\\AppData\\Roaming',
'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files',
'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files',
'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files',
'COMPUTERNAME': 'DESKTOP-RFAU172',
'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe',
'CONDA_DEFAULT_ENV': 'base',.....생략.....
- 위는 객체가 딕셔너리로 호출되는데,
PATH환경변수를 호출하고자 한다면 아래와 같이 나온다.
import os
os.environ['PATH']
'C:\\Users\\User\\anaconda3;C:\\Users\\User\\anaconda3\\Library\\mingw-w64\\bin;C:\\Users\\User\\anaconda3\\Library\\usr\\bin;C:\\Users\\User\\anaconda3\\Library\\bin;C:\\Users\\User\\anaconda3\\Scripts;C:\\Users\\User\\anaconda3\\bin;C:\\Users\\User\\anaconda3\\condabin;C:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\intel64\\compiler;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0;C:\\WINDOWS\\System32\\OpenSSH;C:\\Program Files (x86)\\QuickTime\\QTSystem;C:\\Users\\User\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\User\\AppData\\Local\\atom\\bin;C:\\Users\\User\\AppData\\Local\\Programs\\Python\\Python38-32;C:\\Users\\User\\AppData\\Local\\Programs\\Python\\Python38-32\\Scripts;.;C:\\Program Files\\JetBrains\\PyCharm 2020.1.4\\bin;.;C:\\Program Files\\JetBrains\\PyCharm Community Edition 2020.3.2\\bin;.;C:\\Users\\User\\AppData\\Local\\Microsoft\\WindowsApps'
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.listdir
: 디렉터리에 있는 파일들을 리스트로 가져온다 (glob와 같음)
>>>print(os.listdir())
['.idea', '2-1.py', 'A.pickle', 'argv_test.py', 'beautifulsoup_test.py', 'calculate.py', 'file.txt', 'Include', 'Lib', 'practice.py', 'practice_02.py', 'practice_03.py', 'pyvenv.cfg', 'Quiz.py', 'quiz_str.py', 'sample', 'Scripts', 'starcraft.py', 'sys.path.append_test.py', 'test.txt', 'theater_module.py', 'travel', '__pycache__']
기타 os 함수
함수 | 설명 |
os.mkdir(디렉터리) | 디렉터리를 생성한다 |
os.rmdir(디렉터리) | 디렉터리를 삭제한다 (단, 디렉터리가 비어있는 상태여야 함) |
os.unlink(파일이름) | 파일을 지운다 |
os.rename(A,B) | A라는 이름의 파일을 B로 바꾼다 |
shutil
: 파일을 복사해주는 파이썬 모듈
shutil.copy(A,B)
: A라는 이름의 파일을 B에 복사한다
만약 B가 디렉터리 이름이면 A라는 파일이름으로 B라는 디렉터리에 복사한다
동일한 파일 이름이 있을경우에는 덮어쓴다
import shutil
shutil.copy("test.txt", "file.txt")
- test.txt 파일 내용이 file.txt에 복사된 것을 확인할 수 있다.
glob
: 경로 내의 폴더/ 파일목록 조회를 할 수있는 모듈
(windows에 dir과 같다)
>>>import glob
>>>print(glob.glob("*.py"))
['2-1.py', 'argv_test.py', 'beautifulsoup_test.py', 'calculate.py', 'practice.py', 'practice_02.py', 'practice_03.py', 'Quiz.py', 'quiz_str.py', 'starcraft.py', 'sys.path.append_test.py', 'theater_module.py']
- 디렉터리 내에서 .py로 끝나는 파일들을 모두 나타낸 것
>>>import glob
>>>glob.glob("s*")
['Scripts','sys.path.append_test.py']
- 디렉터리 내에서 s로 시작하는 파일들을 모두 나타낸 것
tempfile
tempfile.mktemp( )
: 중복되지 않는 임시파일의 이름을 무작위로 만들어준다
>>>import tempfile
>>>file = tempfile.mktemp()
>>>file
'C:\\Users\\User\\AppData\\Local\\Temp\\tmpsuv5_rnq'
tempfile.TemporaryFile( )
: 임시 저장공간으로 사용될 파일 객체를 리턴한다
기본적으로 바이너리 쓰기 모드를 갖고 있고, f.close( )가 호출되면 파일 객체가 자동으로 사라진다
>>>import tempfile
>>>file = tempfile.TemporaryFile()
>>>f.close( )
time
time.time( )
: 현재시간을 실수 형태로 리턴한다
>>> import time
>>> time.time()
1612299348.4760606
time.localtime( )
: time.time( )의 실수값을 연도, 달, 월, 시, 분, 초의 형태로 바꿔준다
>>> time.localtime(time.time())
time.struct_time(tm_year=2021, tm_mon=2, tm_mday=3, tm_hour=5, tm_min=57, tm_sec=46, tm_wday=2, tm_yday=34, tm_isdst=0)
time.asctime( )
: time.localtime를 통해 나온 튜플 형태 값의 날짜와 시간을 알아보기 쉬운 형태로 바꿔준다
>>> time.asctime(time.localtime(time.time()))
'Wed Feb 3 06:02:30 2021'
time.ctime( )
: time.asctime()을 간편하게 time.ctime()으로 표현할 수 있는데, 다른점은 ctime은 항상 현재 시간만을 리턴한다.
>>> time.ctime()
Wed Feb 3 06:02:30 2021
time.strftime( )
: time.strftime('출력할 형식 코드',time.localtime(time.time())) 형태로
시간과 관련된 여러가지 포맷코드를 사용할 수 있다.
코드 | 설명 |
%c | 날짜와 시간 출력 |
%H | 시간을 24시간 형태로 출력 |
%I | 시간을 12시간 형태로 출력 |
%p | AM or PM 출력 |
%x | 현재 설정된 로컬에 기반한 날짜 출력 |
%X | 현재 설정된 로컬에 기반한 시간 출력 |
%Y | 연도 출력 |
time.sleep( )
: 일정한 시간을 간격으로 루프를 실행할 수 있다.
>>> import time
>>> for i in range(11):
... print(i)
... time.sleep(1)
0
1
2
3
4
5
6
7
8
9
- 위의 예는 1초간격으로 숫자 0부터 9까지 출력한다
- 인수는 실수형태로 쓸 수 있어서 0.1초면 0.1이라고 쓰면 된다
calendar
calendar.calendar(연도)
: 그 해의 전체 달력을 볼 수 있다.
calendar.prmonth(연도, 월)
: 해당 연도의 해당 월에 대한 달력을 볼 수 있다.
calendar.weekday(연도, 월, 일)
: 해당 연도의 그 날짜에 해당하는 요일 정보를 알 수 있다.
월요일부터 일요일까지 0-6이라는 값을 나타낸다.
>>> import calendar
>>> calendar.weekday(2021,3,3)
2 #수요일
calendar.monthrange(연도, 월)
: 입력받은 달의 1일이 무슨 요일인지 그리고 그 달이 몇일까지 있는지를 튜플형태로 나타낸다.
>>> calendar.monthrange(2021,3)
(0,31) #2021년 3월 1일은 월요일이고, 31일까지 있다
random
: 규칙이 없는 임의의 수를 발생시킨다.
random.random( )
: 0.0 에서 1.0 사이의 실수 중에서 임의의 값을 리턴한다.
>>> import random
>>> random.random()
0.2372791744349928
random.randint( )
: 입력받은 범위의 정수 중에서 임의의 값을 리턴한다.
>>> import random
>>> random.randint(1,10)
2
random.choice( )
: 입력받은 리스트에서 무작위로 하나의 값을 선택해 리턴한다.
>>> import random
>>> range = [1,3,4,5,0]
>>> random.choice(range)
4
random.shuffle( )
: 입력받은 리스트의 항목을 무작위로 섞어준다.
>>> import random
>>> range = [1,3,4,5,0]
>>> random.shuffle(range)
>>> range
[3,4,1,0,5]
webbrowser
: 자신의 시스템에서 사용하는 기본 웹브라우저가 자동으로 실행되게 하는 모듈
webbrowser.open( )
: 입력받은 url로 웹브라우저를 자동 실행시킨다.
>>> import webbrowser
>>> webbrowser.open("http://naver.com")
- 웹브라우저가 이미 실행된 상태면 입력된 주소로 이동하고,
실행되지 않은 상태면 새로 웹브라우저를 실행하고 해당 주소로 이동한다.
webbrowser.open_new( )
: 이미 웹 브라우저가 실행된 상태더라도 새로운 창으로 해당 주소를 열어준다.
>>> import webbrowser
>>> webbrowser.open_new("http://naver.com")
'Programming > Python' 카테고리의 다른 글
파이썬 코딩 따라하기(기본) - 내장함수 모음 (0) | 2021.01.25 |
---|---|
파이썬 코딩 따라하기(기본) - 패키지 (2) | 2021.01.14 |
파이썬 코딩 따라하기(기본) - 모듈 (0) | 2021.01.12 |
파이썬 코딩 따라하기(기본) - 에러/예외처리(try) (0) | 2021.01.06 |
파이썬 코딩 따라하기(기본) - 클래스 (0) | 2020.12.30 |