원하는 폴더가 없는 경우 생성해 주는 함수 / 폴더 내에 파일이 있는 경우 전체를 삭제 또는 특정 확장자 파일을 삭제하는 경우의 예제입니다.
1. 폴더 체크 및 없는 경우 생성
1 2 3 4 5 6 7 8 9 10 | import os def checkdir(createPath): if os.path.exists(createPath): return 'already exists' else: os.mkdir(createPath) return 'dir create' print(checkdir('c:/temptest')) |
createPath라는 원하는 경로를 입력해 주면 해당 경로가 존재하는 경우 'already exists'를 리턴하고 없는 경우에는 폴더 생성 후 'dir create'라는 값을 리턴합니다.
리턴값을 True, False로 구분해서 후 처리를 할 수도 있겠죠.
실행결과는 아래와 같습니다.
-> 입력한 경로가 존재하지 않아 폴더를 생성한 경우
-> 입력한 경로가 이미 존재하는 경우
2. 폴더 내 모든 파일 삭제 함수
1 2 3 4 5 6 7 8 9 10 11 | import os def removeAllFile(filePath): if os.path.exists(filePath): for file in os.scandir(filePath): os.remove(file.path) return 'Remove All File' else: return 'Directory Not Found' print(removeAllFile('c:/temptest')) |
먼저 if문을 통해서 주어진 경로를 체크하고 주어진 경로내의 파일을 for 문을 통해 순회하면서 os.remove를 통해 삭제합니다.
if문에서 디렉토리가 없는 경우에는 바로 'Directory Not found'를 반환합니다.
-> 입력한 경로 내의 파일을 정상적으로 삭제한 경우
-> 입력한 경로가 존재하지 않는 경우
3. 폴더 내 특정 확장자 파일 삭제 함수
1 2 3 4 5 6 7 8 9 10 | def removeExtensionFile(filePath, fileExtension): if os.path.exists(filePath): for file in os.scandir(filePath): if file.name.endswith(fileExtension): os.remove(file.path) return 'Remove File : ' + fileExtension else: return 'Directory Not Found' print(removeExtensionFile('c:/temptest', '.PNG')) |
2번 예와 거의 유사합니다. 다만 fileExtension이라는 확장자 입력만 추가 되었습니다.삭제를 처리할 때 file.name.endswith함수를 통해 fileExtension과 같은 경우에만 삭제를 진행합니다.
-> 입력한 경로 내의 특정 확장자 파일을 정상적으로 삭제한 경우
윈도우 기준 함수이기는 한데 넘겨주는 경로만 맞으면 리눅스에서도 작동하는데에 이상은 없을 것 같네요.
'프로그래밍 > 파이썬(Python)' 카테고리의 다른 글
파이썬 자동화 - 엑셀 파일을 읽어 검색 (1) | 2018.08.07 |
---|---|
파이썬 자동화 - 인터넷 익스플로러 창 열고 검색하기 (0) | 2018.08.05 |
마르코프 체인을 활용한 문장 생성 - KPOP 버전 (0) | 2017.07.02 |
마르코프 체인을 활용한 문장 생성 (0) | 2017.06.27 |
코드카데미 파이썬 분산 - The Variance(Exam Statics) (0) | 2017.04.11 |