728x90
반응형
조건
1. txt와 xlsx확장자를 가지고 있는 파일을 입력한다면 확장자 이름 txt와 xlsx을 출력하는 방법이랑
2. 만약 파일 확장자가 다른 파일(ex.ppt)을 검색했을 때 “존재하지 않는 확장자입니다” 라고 출력되고,
3. 확장자는 같지만, 폴더에 있는 파일과 다른 파일을 입력할 경우(ex. re.txt) “존재하지 않는 파일입니다” 출력
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.ppt
존재하지 않는 확장자입니다
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : 두 수 사이의 합계 출력하는 함수 (0) | 2022.11.13 |
---|---|
[파이썬] 문제 : 입력 받은 수식으로 계산하기 (0) | 2022.11.13 |
[파이썬] 문제 : 리스트의 원소를 역순으로 출력 (0) | 2022.11.13 |
[파이썬] 문제 : 가위,바위,보 게임 코드 해석 (0) | 2022.11.13 |
[파이썬] 영어 번역 하기(구글번역 패키지(googletrans)) (0) | 2022.11.13 |
댓글