본문 바로가기
파이썬

기본 모듈 20

by 현돌스 2023. 1. 31.
반응형

1.sys Module
sys 모듈은 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해줍니다. 
sys.argv는 파이썬 스크립트를 실행할 때 커맨드 라인에서 전달한 인수들을 담고 있는 리스트입니다. 예를 들어, 다음과 같이 실행할 경우 sys.argv는 ['script.py', 'arg1', 'arg2', 'arg3']를 반환합니다.
$ python script.py arg1 arg2 arg3


2.os Module
os 모듈은 운영체제와 관련된 기능을 제공하는 모듈입니다. 
예를 들어, os 모듈을 사용하면 현재 디렉토리의 내용을 볼 수 있고, 디렉토리를 만들거나 삭제할 수도 있습니다. 
os.listdir()을 사용하면 현재 디렉토리의 내용을 볼 수 있습니다. 
os.mkdir()을 사용하면 디렉토리를 만들 수 있습니다. 
os.rmdir()을 사용하면 디렉토리를 삭제할 수 있습니다.

 

3.math Module
math 모듈은 수학 관련 기능들을 제공하는 파이썬 모듈입니다.
예를 들어, 다음과 같은 기능들을 제공합니다.
1. 수학 함수: math.sqrt() 함수는 제곱근을 구합니다.
2. 상수: math.pi는 원주율 상수를 구합니다.
3. 집합 관련 함수: math.factorial() 함수는 팩토리얼을 구합니다.
4. 랜덤 관련 함수: math.random() 함수는 난수를 생성합니다.

 

4.datetime Module
datetime 모듈은 파이썬에서 날짜와 시간을 쉽게 처리하기 위한 모듈입니다. 다양한 함수들을 제공하여 현재 날짜와 시간, 날짜 및 시간 연산, 날짜 및 시간 형식 변환 등을 쉽게 수행할 수 있습니다.
datetime 모듈을 사용하기 위해서는 다음과 같이 import문을 사용하여 모듈을 불러옵니다.
import datetime
datetime 모듈을 사용하면 다음과 같은 기능을 사용할 수 있습니다.
1. 현재 날짜와 시간 얻기
datetime.datetime.now()
2. 날짜 및 시간 연산
date1 = datetime.datetime(2020, 3, 1)
date2 = datetime.datetime(2020, 4, 1)
diff = date2 - date1
3. 날짜 및 시간 형식 변환
date = datetime.datetime.now()
date_str = date.strftime('%Y-%m-%d %H:%M:%S')

 

5.random Module
random 모듈은 난수를 생성하기 위한 모듈입니다.
random.randint(a, b) 함수는 a와 b 사이의 정수 중 무작위로 하나를 반환합니다.
예를 들어, random.randint(1, 6)을 실행하면 1부터 6 사이의 정수 중 하나가 무작위로 반환됩니다.

 

6.string Module
Python 모듈 string은 문자열 관련 기능을 제공하는 모듈입니다. 
string 모듈은 다음과 같은 기능을 제공합니다. 
1. 문자열 관련 상수 제공
string 모듈은 문자열 관련 상수를 제공합니다. 예를 들어, string.ascii_lowercase는 모든 소문자를 담고 있는 문자열 상수를 제공합니다.
2. 문자열 관련 함수 제공
string 모듈은 문자열 관련 함수를 제공합니다. 예를 들어, string.capwords()는 문자열의 각 단어를 대문자로 변환하는 함수를 제공합니다.
예제:
import string
my_string = "hello world"
# 문자열의 각 단어를 대문자로 변환
print(string.capwords(my_string))
# 결과
Hello World

 

7.re Module
re 모듈은 문자열을 다루는 기능을 제공하는 파이썬 라이브러리이다. 
re.search() 메소드는 문자열에서 주어진 정규 표현식과 일치하는 부분을 찾아내는 메소드이다. 
예를 들어, 다음과 같이 문자열이 있다고 가정하자.
text = "The cat in the hat"
여기에서 "cat"이라는 문자열을 찾고 싶다면 다음과 같이 re.search() 메소드를 사용할 수 있다.
import re
match = re.search(r'cat', text)
이 경우 match는 "cat"이라는 문자열을 가진 MatchObject 객체를 반환한다.

 

8.json Module
json 모듈은 파이썬 객체를 json 문자열로 변환하거나, json 문자열을 파이썬 객체로 변환하는데 사용할 수 있는 모듈입니다.
예를 들어 다음과 같은 파이썬 객체를 json 문자열로 변환할 수 있습니다.
person = {
    "name": "John Smith",
    "age": 30,
    "address": {
        "street": "123 Main Street",
        "city": "New York",
        "state": "NY"
    }
}
import json
person_json = json.dumps(person)
print(person_json)
# 출력값
{"name": "John Smith", "age": 30, "address": {"street": "123 Main Street", "city": "New York", "state": "NY"}}

 

9.pickle Module
pickle 모듈은 객체를 파일로 저장하고 읽는데 사용하는 모듈입니다. 파이썬 객체를 파일로 저장하고 읽기 위해서는 파이썬에서 제공하는 pickle 모듈을 사용합니다. pickle 모듈을 사용하면 파이썬 객체를 파일로 저장하고 읽을 수 있습니다. 
pickle 모듈을 사용하는 예제는 다음과 같습니다.
import pickle
# 데이터 생성
data = {'name':'John', 'age':20, 'address':'Seoul'}
# 파일로 저장
f = open('data.pkl', 'wb')
pickle.dump(data, f)
f.close()
# 파일로부터 데이터 불러오기
f = open('data.pkl', 'rb')
data = pickle.load(f)
f.close()
print(data)
# {'name': 'John', 'age': 20, 'address': 'Seoul'}

 

10.time Module
time 모듈은 시간과 관련된 기능을 제공하는 모듈입니다.
- time.time(): 현재 시간을 초 단위로 반환합니다.
- time.localtime([secs]): 초 단위의 시간을 사람이 읽을 수 있는 형태로 반환합니다. secs 인자가 없다면 현재 시간으로 설정합니다.
- time.asctime([t]): 시간 튜플 형태로 전달된 시간을 사람이 읽을 수 있는 형태로 반환합니다. t 인자가 없다면 현재 시간으로 설정합니다.
- time.sleep(secs): secs 초 동안 프로그램을 일시 정지합니다.

 

11.collections Module
collections 모듈은 기본 데이터 구조인 list, dict, set 등과 같은 자료형을 확장하거나 강화하는 기능을 제공합니다. 
예를 들어, collections 모듈의 deque 클래스는 스택과 큐를 구현하는데 사용할 수 있는 자료형입니다. deque는 양쪽 끝에서 삽입과 삭제가 가능하도록 설계되어 있습니다. 
또한, collections 모듈의 namedtuple은 각 필드에 이름을 붙인 튜플을 만들어 줍니다. 이는 튜플의 인덱스를 이름으로 변경하여 데이터를 가시적으로 이해하기 쉽게 해줍니다. 
Counter 클래스는 딕셔너리 같은 자료형으로 각 요소가 몇 번 나타나는지 쉽게 셀 수 있게 해줍니다. 
OrderedDict 클래스는 딕셔너리를 정렬해 줍니다. 이는 사용자가 원하는 순서로 데이터를 정렬하기 위해 사용할 수 있습니다.

 

12.argparse Module
argparse 모듈은 명령 행 인수를 구문 분석하기 위해 사용되는 표준 파이썬 모듈입니다. 이 모듈은 명령 행 인수를 해석하는 데 필요한 기능을 제공하고, 프로그램을 실행하는 데 필요한 인수를 사용자가 제공하도록 요구합니다.
예를 들어, 다음과 같이 사용할 수 있습니다.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--name", help="Name of the person")
parser.add_argument("--age", help="Age of the person", type=int)
args = parser.parse_args()
print("Name:", args.name)
print("Age:", args.age)
이 예제는 명령 행에서 --name과 --age 인수를 사용하여 이름과 나이를 입력하는 방법을 보여줍니다. 사용자가 --name과 --age를 전달하면 이름과 나이가 출력됩니다.

 

13.multiprocessing Module
multiprocessing 모듈은 프로세스 간 통신 및 병렬 프로그래밍을 위한 라이브러리입니다. 병렬 프로그래밍이란, 하나의 작업을 여러 프로세스로 나누어 병렬로 실행하는 것을 의미합니다.
multiprocessing 모듈은 다양한 기능을 제공합니다. 가장 중요한 기능 중 하나는 프로세스 간 통신입니다. 프로세스 간 통신은 두 개 이상의 프로세스가 서로 정보를 교환하는 것을 의미합니다. 또한 multiprocessing 모듈은 다른 기능들도 제공합니다. 예를 들어, 프로세스 간 동기화를 위한 Lock, Semaphore 및 Condition 객체를 생성하고 관리할 수 있습니다. 또한 multiprocessing 모듈은 메모리 공유를 위한 Array, Value 및 Queue 객체를 생성하고 관리할 수 있습니다.
multiprocessing 모듈을 사용하는 예제는 다음과 같습니다.
import multiprocessing
def worker(num):
    """thread worker function"""
    print 'Worker:', num
    return
if __name__ == '__main__':
    jobs = []
    for i in range(5):
        p = multiprocessing.Process(target=worker, args=(i,))
        jobs.append(p)
        p.start()

 

14.logging Module
Python 모듈 logging은 로그를 남기기 위한 파이썬 모듈입니다. 각각의 로그 레벨에 따라 로그 메시지가 다르게 출력되며, 로그 메시지를 파일로 저장하거나 메일로 보내거나 다른 방법으로 로그를 출력할 수 있습니다. 
로그 레벨은 다음과 같이 다섯 가지가 있습니다.
1. DEBUG: 최소한의 정보를 출력합니다.
2. INFO: 일반적인 정보를 출력합니다.
3. WARNING: 잠재적인 문제를 의미합니다.
4. ERROR: 심각한 문제를 의미합니다.
5. CRITICAL: 가장 심각한 문제를 의미합니다.
예를 들어, 다음과 같이 logging 모듈을 사용하여 로그를 남길 수 있습니다.
import logging
logging.basicConfig(filename='example.log', level=logging.DEBUG)
logging.debug('This message should go to the log file')
logging.info('So should this')
logging.warning('And this, too')

 

15.itertools Module
itertools는 파이썬 라이브러리로 반복 가능한 자료형의 요소를 조합하거나 반복하는 데 사용되는 모듈입니다. 
예를 들어, itertools의 chain() 함수는 입력된 여러 반복 가능한 자료형을 하나의 반복 가능한 자료형으로 결합합니다. 
예를 들어, 다음과 같이 두 개의 리스트를 입력으로 사용할 수 있습니다. 
list1 = [1, 2, 3]
list2 = [4, 5, 6]
chain() 함수를 사용하면 다음과 같이 이 두 리스트를 결합할 수 있습니다.
list3 = itertools.chain(list1, list2)
list3의 결과는 [1, 2, 3, 4, 5, 6]이 됩니다.

 

16.threading Module
threading 모듈은 파이썬에서 멀티 스레드 프로그래밍을 쉽게 할 수 있도록 해주는 모듈입니다. 멀티 스레드 프로그래밍은 하나의 프로그램 내에서 병렬로 여러 개의 스레드를 사용하는 것을 말합니다. 
threading 모듈은 threading.Thread 클래스를 사용하여 스레드를 생성하고 관리하는 데 사용됩니다. 스레드는 일반적으로 run() 메소드를 통해 실행됩니다. 다음은 threading 모듈을 사용하여 스레드를 생성하고 실행하는 예제입니다.
import threading
def worker():
    print("Worker")
threads = []
for i in range(5):
    t = threading.Thread(target=worker)
    threads.append(t)
    t.start()
for thread in threads:
    thread.join()
# 출력 결과
# Worker
# Worker
# Worker
# Worker
# Worker

 

17.subprocess Module
subprocess 모듈은 외부 프로그램을 실행하거나 그 실행 결과를 받아올 때 사용하는 모듈입니다. 
예를들어 다음과 같이 외부 프로그램을 실행하고 그 결과를 받아오는 코드를 작성할 수 있습니다.
import subprocess
proc = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
print(proc.stdout.decode('utf-8'))

 

18.urllib Module
urllib 모듈은 URL을 다루기 위한 라이브러리로, 웹 사이트를 다루기 위해 필요한 기능을 제공합니다.
urllib 모듈은 웹 사이트를 다루기 위해 다음과 같은 기능을 제공합니다.
1. urllib.request : URL을 요청하고 응답을 받을 수 있는 기능을 제공합니다.
2. urllib.parse : URL을 파싱하고 분석하는 기능을 제공합니다.
3. urllib.error : URL 요청 중 발생하는 에러를 처리하는 기능을 제공합니다.
예제 코드:
import urllib.request
url = "http://www.example.com"
# URL 요청
response = urllib.request.urlopen(url)
# 응답 내용 읽기
data = response.read()
# 데이터 출력
print(data)

 

19.xml Module
XML 모듈은 간단한 방법으로 XML 문서를 생성, 읽고, 편집하는 데 사용됩니다. 다음 예제에서는 모듈을 사용하여 XML 문서를 생성하는 방법을 보여줍니다.
```python
import xml.etree.ElementTree as ET
# 트리 구조를 생성합니다.
data = ET.Element('data')
items = ET.SubElement(data, 'items')
item1 = ET.SubElement(items, 'item')
item2 = ET.SubElement(items, 'item')
# 트리 구조에 데이터를 추가합니다.
item1.set('name','item1')
item1.text = 'item1abc'
item2.set('name','item2')
item2.text = 'item2abc'
# 트리 구조를 XML 문서로 변환합니다.
tree = ET.ElementTree(data)
tree.write("items.xml")
```
위의 코드는 다음과 같은 XML 문서를 생성합니다.
```xml
<data>
  <items>
    <item name="item1">item1abc</item>
    <item name="item2">item2abc</item>
  </items>
</data>
```

 

20.csv Module
csv모듈은 파이썬에서 csv 파일을 쉽게 읽고 쓸 수 있도록 도와주는 모듈입니다. 
csv모듈을 사용하기 위해서는 먼저 다음과 같이 csv 모듈을 불러와야합니다.
import csv
csv 모듈을 불러왔다면 다음과 같이 csv 파일을 읽거나 쓸 수 있습니다.
# csv 파일 읽기
with open('test.csv', 'r', newline='') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print(row)
# csv 파일 쓰기
with open('test.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['name', 'age'])
    writer.writerow(['John', '20'])
    writer.writerow(['Bob', '30'])&visibility=3&acceptComment=0&category=1074289

'파이썬' 카테고리의 다른 글

파이썬 3주 끝내기 일정  (0) 2023.02.19
Python QT 예제  (0) 2023.02.18
Python으로 자동화하는 방법  (0) 2023.02.18
pyautogui 모듈  (0) 2023.02.01
기본 내장 함수 20  (0) 2023.01.31

댓글