본문 바로가기
프로그램

[파이썬] 문제 : 폴더내 특정 확장가 파일만 출력

by 오디세이99 2022. 11. 12.
728x90
반응형

 

import os
 
path_dir = 'E:/RnD/지식IN/tmp5'            # 대상 폴더 지정

ss = input('검색할 파일 이름을 입력(예:reunion.txt): ')   # 파일명(확장자 포함) 입력 받음

tmp = ss.split('.')                     # 확장자 구분을 위해 '.' 문자로 분리하려 리스트로 만듬. '.'이 여러개인 파일명 처리에 쉬움
ext = tmp[-1]                           # 리스트 중 마지막 요소(문자열)이 확장자가 됨
fname = ''.join(tmp[:-1])               # 리스트 중 마지막 요소를 제외한 앞부분 요소들이 파일명(확장자 제외)이 됨

if ext != 'txt' and ext != 'xlsx':     # txt, xlsx가 아닌 확장자를 입력하면 존재하지 않는 확장자
    print("존재하지 않는 확장자입니다")
else:
    file_lst = os.listdir(path_dir)     # 해당 폴더의 파일 리스트를 가져 옴(reunion.txt 등등)

    flag_find = False                  # 입력된 파일명의 파일을 찾았는지 구분 bool 변수
    for i in range(len(file_lst)):     # 파일명을 순차적으로 가져옴. 
        tmp = file_lst[i].split('.')    # 파일명과 확장자 분리
        ext = tmp[-1]
        if fname+'.' in file_lst[i]:   # 찾으려는 파일명(입력 받은) 문자열이 폴더의 파일명 문자열에 있는지(in) 확인
            if ext == 'txt' or ext == 'xlsx':   # 찾은 파일명의 확장자가 txt 또는 xlsx 이면
                print(file_lst[i])      # 파일명 출력
                flag_find = True       # 입력한 파일명의 파일을 찾았다고 bool 변수를 True로 함
    
    if flag_find == False:            # 모든 파일을 확인했는데 False이면 해당 파일이 없는 것임
        print("존재하지 않는 파일입니다")

결과

검색할 파일 이름을 입력(예:reunion.txt): reunion.txt
reunion.txt
reunion.xlsx

-

검색할 파일 이름을 입력(예:reunion.txt): reunion.ppt
존재하지 않는 확장자입니다

-

검색할 파일 이름을 입력(예:reunion.txt): ex03.txt
존재하지 않는 파일입니다
728x90
반응형

댓글