본문 바로가기
  • 紹睿: 자유롭고 더불어 사는 가치있는 삶
Data/python·알고리즘

[python] 알아두면 좋은 Standard Library

by 징여 2018. 6. 29.
반응형

Standard Library


https://docs.python.org/3/library

1. 내장 함수 및 내장 상수

2. 내장 타입(Built-in Types)

- 데이터 타입

- Exception

3. Text Processing Services

- string

- ** re - Regular expression

- 기타(difflib, unicodedata ...)

4. Numeric 및 mathematical modules

- math, cmath, random ...

5. Data Persistence/파일관련

- ** pickel(Python object serialization)

- marshal

- ** sqlite3

- 파일 포맷 관련: zlib, gzip 등 파일 압축 관련,  csv, configparser 등 

- 암호화 관련: hashlib 등

6. OS 서비스 관련

- 파일/디렉토리관련: pathlib, os.path, fileinput, glob 등 

- argparse, getopt, logging

- platform, errno ...

- ctypes

- Concurrent Execution: threading, nultiprocessing 등

7. 네트워크

- IPC, network 관련: socket, ssl, asyncio, signal 등

- 네트워크 데이터 관련: email, json, mailbox

- html, XML 처리관련

- webbrowser, cgi, urllib, http 등

8. Python Runtime Services

- sys, sysconfig, Built-in objects

- __main__

9. 기타

- multimedia 서비스

- Inernationalization(gettext, locale)

- Program Frameworkds

-GUI

-IDLE

- 개발도구

- S/W packagiing과 Districution

- Custom Python Interpreters

- Importing Modules

- Python Language Services

 

sys module 관련 주요 함수

- argv: The command-line arguments, including the script name

import sys
args = sys.argv[1:]
args.reverse()
print(','.join(args))

# termianl에서
# MacBook-Pro:study-py3 jiyoung$ python3 test01.py a b c d
# d,c,b,a

- exit([arg]): Exits the current program, optionally with a given return value or error message

- modules: 

- path

- platform

- stdin

- stdout

- stderr

 

os module 관련 주요 함수

- environ

- system(command)

- startfile(command)

- sep

- pathsep

- linesep

- urandom(n)

 

filinput module 관련 주요 함수

- Input([files[, inplace[, backup]])

import fileinput                         
                                         
for line in fileinput.input(inplace=1):  
line = line.strip()                     
num = fileinput.lineno()                 
print('%-40s # %2i' % (line, num))       


# terminal에서 
# MacBook-Pro:study-py3 jiyoung$ python test01.py test01.py
# 실행하면, 오르른쪽에 line number을 찍은 것을 볼 수 있다.

import fileinput                         #  1
                                         #  2
for line in fileinput.input(inplace=1):  #  3
line = line.strip()                      #  4
num = fileinput.lineno()                 #  5
print('%-40s # %2i' % (line, num))       #  6

- filename()

- lineno()

- filelineno()

- isstdin()

- nextfile()

- close()

 

random module 주요함수

- random()

- getrandbits()

- uniform(a, b)

- randrange([start], stop, [step])

from random import randrange
num = input('How many dice?')
sides = input('How many sides per dice? ')
sum = 0
for i in range(int(num)):
    sum += randrange(int(sides))+1
    
print('The result is:', sum)

# How many dice? 1
# How many sides per dice? 6
# The result is: 2

- choice(seq)

- shufle(seq[, random])

- sample(seq, n)

 

shelve module

- open(filename[, flag='c'[,protocol=None[,Writeback=False]]])

개념

1) "shelf" = a persistet, dictionary-like object

2) shelf에서의 value는 어떠한 object라도 상관없다

3) pickle도 다룰 수 있다(class, instances, recursive data types 등)

4) key만 일반 string이면 됨!

 

pickle module

- dump

- load

- dumps

- loads

개념 (serialization, marshalling, flattening)

1) serializing , de-serializing object structure.

2) "Pickling": object가 byte stream으로

3) "unpickling": byte stream을 object로

movieList = ['Ants', 'Star Wars', 'Inception']
outFile = open('pickle.txt', 'wb') # writebinary

import pickle
pickle.dump(movieList, outFile)
outFile.close()

inFile = open('pickle.txt', 'rb')
newList = pickle.load(inFile)
print(newList) # ['Ants', 'Star Wars', 'Inception']
inFile.close()

pickle을 이용하면, 어떤 것이든 저장하고 불러오기가능 *^^*

3rd party library(Pypi)

 

https://pypi.python.org/pypi

반응형

댓글