2017-10-23 4 views
-2

디렉토리에서 파일을 찾으려고합니다.Regex로 파일 찾기

찾을 파일은 두 가지 방법으로 이름을 지정할 수 있습니다. 대문자와 파일 확장자 (예 : "ABC.xlsx") 또는 대문자 3 개, 문자열 "_diff"와 확장자 (예 : "ABC_diff.xlsx")의 조합입니다.

def find_files(directory): # Function that iterates over files in a directory 
for root, dirs, files in os.walk(directory): 
    for basename in files: 
     if re.match(r'\b[A-Z]+\b.xlsx', basename): 
      basename = os.path.splitext(basename)[0] 
      yield basename 

이 기능은 파일의 "ABC.xlsx"종류를 찾을 수 있지만 둘 다 가능성을 찾을 수 있도록하고 싶습니다 :

이 지금까지 내 코드입니다. 다음과 같은 패턴으로

+2

확인 [이 사이트 - regex101]는 "빠른 참조"뿐만 아니라 당신이 실험을 할 수있다 (https://regex101.com/). – ClasG

+0

"else if"와 "_diff"파일의 두 번째 패턴을 사용하는 것이 잘못된 점은 무엇입니까? – mkrieger1

답변

1

사용 re.search() 기능 :

... 
if re.search(r'[A-Z]{3}(_diff)?\.xlsx$', basename):