python 어댑터의glob 모듈 사용 상세 정보

와일드카드는 별표(*)와 물음표(?)가 있는 특수 기호입니다.파일을 흐리게 검색하는 데 사용됩니다. "*"는 임의의 기호와 일치할 수 있습니다. "?"단일 문자를 일치시킬 수 있습니다.
폴더를 찾을 때 하나 이상의 진짜 문자를 대체할 수 있습니다.실제 문자를 모르거나 일정한 조건에 맞는 여러 대상 파일과 일치해야 할 때, 하나 이상의 실제 문자를 와일드카드로 대체할 수 있습니다.
영어'globbing'은 통일을 의미하고python은 모듈glob에서glob() 함수를 정의하여 디렉터리 내용에 일치하는 기능을 실현했다.glob.glob () 함수는 플러그인 모드를 입력으로 받아들이고 일치하는 모든 파일 이름과 경로 이름 목록을 os와 되돌려줍니다.listdir 유사합니다.

glob 모듈에서 자주 사용하는 함수:


glob(pathname, recursive=False) 
첫 번째 매개 변수 pathname은 일치하는 문자열입니다.(이 매개 변수는 불필요한 오류가 발생하지 않도록 r접두사를 붙여야 한다.)
두 번째 매개변수는 기본 False로 특수 와일드카드 문자 "**"와 함께 사용되는 반복 호출을 나타냅니다.
이 함수는 조건에 맞는 경로의 문자열 목록을 되돌려줍니다. Windows 시스템을 사용하는 경우 경로의 "\"기호가 자동으로 덧붙여져 "\"기호가 됩니다.

iglob(pathname, recursive=False) 
인자는glob () 와 일치합니다.
교체기를 되돌려줍니다. 이 교체기는 일치하는 모든 경로를 동시에 저장하지 않고 일치하는 파일 경로 이름을 하나씩 가져옵니다. 이 교체기를 훑어보는 결과는 같은 매개 변수를 사용하여glob () 를 호출하는 복귀 결과와 일치합니다.

glob 모듈에서 지원하는 와일드카드:


와일드카드
기능
*
0 또는 여러 문자 일치
**
모든 파일, 디렉터리, 하위 디렉터리 및 하위 디렉터리의 파일 일치(3.5 버전 추가)
?
정규 표현식과?다르다
[exp]
지정된 범위 내의 문자 일치 (예: [1-9] 1-9 범위 내의 문자 일치)
[!exp]
지정된 범위에 없는 문자 일치

glob.glob 함수 사용 예시


import glob
 
listglob = []
listglob = glob.glob(r"/home/xxx/picture/*.png")
listglob.sort()
print listglob
 
print '--------------------'
listglob = glob.glob(r"/home/xxx/picture/0?.png")
listglob.sort()
print listglob
 
print '--------------------'
listglob = glob.glob(r"/home/xxx/picture/0[0,1,2].png")
listglob.sort()
print listglob
 
print '--------------------'
listglob = glob.glob(r"/home/xxx/picture/0[0-3].png")
listglob.sort()
print listglob
 
print '--------------------'
listglob = glob.iglob(r"/home/xxx/picture/0[a-z].png")
print listglob
for item in listglob:
    print item
추가: Python glob() 함수 초 이해

Python glob()


glob 모듈은 가장 간단한 모듈 중 하나로 내용이 매우 적다.특정 규칙에 맞는 파일 경로 이름을 찾을 수 있습니다.
윈도우즈를 사용한 파일 검색과 차이가 많지 않습니다.파일을 찾는 데는 세 개의 일치부호만 사용됩니다.'*','?',“[ ]”.”*”0자 이상의 문자와 일치합니다.임의의 단일 문자 일치[]는 지정된 범위 내의 문자와 일치합니다. 예를 들어 [0-9]는 숫자와 일치합니다.
대소문자 구분 안 함
'.'시작이 일치하지 않음

print(glob.glob(r' . ./*') )


이전 레벨 모든 디렉토리

>>> print(glob.glob("../*"))
['..\\Python37-32', '..\\Python38-32']

print(glob.glob(r' ./*') )


이 레벨 모든 디렉토리

>>> print(glob.glob("./*"))
['.\\DLLs', '.\\Doc', '.\\include', '.\\Lib', '.\\libs', '.\\LICENSE.txt', '.\\NEWS.txt', '.\\python.exe', '.\\python3.dll', '.\\python38.dll', '.\\pythonw.exe', '.\\Scripts', '.\\tcl', '.\\Tools', '.\\vcruntime140.dll']

print(glob.glob(r' ./ * . *') )


이 레벨 모든 파일

print(glob.glob("./*.*"))
['.\\LICENSE.txt', '.\\NEWS.txt', '.\\python.exe', '.\\python3.dll', '.\\python38.dll', '.\\pythonw.exe', '.\\vcruntime140.dll']

print(glob.glob(r' ./ * . *') )


이 레벨 모든 dll

>>> print(glob.glob("./*.dll"))
['.\\python3.dll', '.\\python38.dll', '.\\vcruntime140.dll']

print(glob.glob(r' C:/ * ') )


CD 모든 디렉토리

>>> print(glob.glob("C:/*"))
['C:/$360Section', 'C:/$Recycle.Bin', 'C:/360SANDBOX', 'C:/Boot', 'C:/bootmgr'.......]

print(glob.glob(“C:/[PB][RO]”) )


C디스크에 pr/po/br/bo가 포함된 모든 디렉토리

print(glob.glob("C:/*[PB][RO]*"))
['C:/360SANDBOX', 'C:/Boot', 'C:/bootmgr', 'C:/BOOTNXT', 'C:/BOOTSECT.BAK', 'C:/PO', 'C:/Program Files', 'C:/Program Files (x86)', 'C:/ProgramData']

print(glob.glob(“C:/p?O”) )


CD 모두에 P_ 포함o 디렉토리

>>> print(glob.glob("C:/*P?O*"))
['C:/Program Files', 'C:/Program Files (x86)', 'C:/ProgramData']

print(glob.glob(“C://.txt”) )


C디스크 2단계 디렉터리의 모든 txt

>>> print(glob.glob("C:/*/*.txt"))
['C:/xiaoyi\\ .txt']
이상의 개인적인 경험으로 여러분께 참고가 되었으면 좋겠습니다. 또한 많은 응원 부탁드립니다.만약 잘못이 있거나 완전한 부분을 고려하지 않으신다면 아낌없이 가르침을 주시기 바랍니다.

좋은 웹페이지 즐겨찾기