Python은 fnmatch 모듈을 통해 파일 이름 일치

fnmatch 모듈은 주로 파일 이름의 일치에 사용되며, 간단한 문자열 일치보다 능력이 강하지만, 정규 표현식을 사용하는 것보다 약간 약하다.데이터 처리 작업에서 간단한 어댑터만 사용하면 파일 이름의 일치를 완성할 수 있다면 fnmatch 모듈을 사용하는 것이 좋습니다.
fnmatch 모듈에서 자주 사용하는 함수와 기능은 표1과 같다.
Python fnmatch 모듈 상용 함수 및 기능
함수
기능
fnmatch.filter(names, pattern)
names 목록을 필터링하여names 목록에서pattern과 일치하는 파일 이름으로 구성된 하위 집합을 되돌려줍니다.
fnmatch.fnmatch(filename, pattern)
filename 파일 이름, 지정한pattern 문자열과 일치하는지 판단
fnmatch.fnmatchcase(filename, pattern)
fnmatch () 함수와 기능은 대체적으로 같지만 이 함수는 대소문자를 구분합니다.
fnmatch.translate(pattern)
UNIX 셸 스타일의 pattern 문자열을 정규 표현식으로 변환
fnmatch 모듈은 파일 이름과 일치하는 패턴으로 UNIX 셸 스타일을 사용하며 다음과 같은 몇 개의 어댑터를 지원합니다.
  • *: 임의의 문자와 일치할 수 있습니다
  • ?:임의의 문자와 일치할 수 있습니다.
  • [문자 시퀀스]: 중괄호 안의 문자 시퀀스에 있는 모든 문자와 일치할 수 있습니다.이 문자 시퀀스도 중화선 표현을 지원합니다.예를 들어 [a-c]는 a, b와 c 문자 중 임의의 것을 대표할 수 있다
  • [! 문자 시퀀스]: 중괄호 안에 없는 문자 시퀀스의 임의의 문자와 일치할 수 있습니다
  • 예를 들어, 다음 프로그램 데모 표 1의 일부 함수의 사용법과 기능:
    
    import fnmatch
    #filter()
    print(fnmatch.filter(['dlsf', 'ewro.txt', 'te.py', 'youe.py'], '*.txt'))
    #fnmatch()
    for file in ['word.doc','index.py','my_file.txt']:
    if fnmatch.fnmatch(file,'*.txt'):
    print(file)
    #fnmatchcase()
    print([addr for addr in ['word.doc','index.py','my_file.txt','a.TXT'] if fnmatch.fnmatchcase(addr, '*.txt')])
    #translate()
    print(fnmatch.translate('a*b.txt'))
    프로그램 실행 결과:
    ['ewro.txt']
    my_file.txt
    ['my_file.txt']
    (?s:a.*b\.txt)\Z
    이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

    좋은 웹페이지 즐겨찾기