Programming Language/Python

[Python] 22. 표준 라이브러리(Standard Library)(2)

lumana 2023. 11. 7. 22:06

표준 라이브러리(standard library)(2)


fnmatch


  • Unix-sytle Pattern Matching

  • 유닉스 shell에서 사용되는 rule에 따라 특정 패턴과 일치하는 string을 찾음

  • fnmatch(text, pattern)

    • text가 pattern과 match하는지 Test (T/F)

    • 대소문자 구분하지 않음(case-insensitive)

  • fnmatchcase(text, pattern)

    • fnmatch와 유사하나, 대소문자를 구분함
  • filter(iterable, pattern)

    • 패턴을 만족하는 iterable에 있는 요소들의 list를 반환
  • example

    import fnmatch
    descs = ['My name is Lee and my E-mail is kim@google.com.', 
    'My name is Park and my e-mail address is Park@naver.com.']
    
    print([fnmatch.fnmatch(desc, 'e-mail') for desc in descs]) # [False, False]
    print([fnmatch.fnmatch(desc, '*e-mail*') for desc in descs]) # [True, True]
    print([fnmatch.fnmatchcase(desc, '*e-mail*') for desc in descs]) # [False, True]
    print([fnmatch.fnmatchcase(desc, '*[Ee]-mail*') for desc in descs]) # [True, True]
    
    print(fnmatch.filter(descs, '*e-mail*')) # ['My ... Lee', 'My ... Park']
    print(fnmatch.filter(descs, '*Pa?k*')) # ['My ... Park']
  • [Ee]는 E와 e 중 한 개의 문자와 매치함을 뜻하는데, 이 표현은 정규식 표현 중 한가지임


csv

  • CSV format(comma-separted values)에 표로 나타낸 데이터를 읽고 쓰는 class를 담고있다.

  • reader(file_obj, dialect='exce', **fmtparams)

    • file_obj의 행에 접근할 수 있는 reader object를 return
  • writer(file_obj, dialect='exce', **fmtparams)

    • user data를 file_obj에 컴마(,)로 구분된 문자열로 변환하여 쓰는 writer object 반환
  • example

    import glob, csv
    
    files = glob.glob('workspace/data_??.csv')
    all_data = []
    for file in files:
        with open(file, 'r') as f:
            csv_reader = csv.reader(f)
            data = []
            for line in csv_reader: # ex) line = ['11', '45']
                if line and not line[0].strip().startswith('#'):
                    data.append([int(val) for val in line])
            all_data = all_data + data

Python Standard Library, 그 이후


  • pre-built Python library를 설치해서 사용할 수 있음

  • pip install package_name

    (pip3 install package name) --> mac OS

    • ex) pip3 install opencv-python

    • pip3 install numpy

tqdm

  • 콘솔에 iteration의 진행상황을 시각화 해준다

  • example

from tqdm import tqdm
n = 1000000000
for i in tqdm(range(n)):
    pass

참조) Do it! 점프 투 파이썬 (박응용 지음), https://wikidocs.net (파이썬 계단밟기)