Python

[Python] 특정 폴더(디렉토리) 전체 비우기, 특정 확장자 지우기

eulBlue 2023. 8. 24. 19:02

📱테스트 환경

"python": "3.9.0"
"PyCharm": "2023.2"
"flask": "2.3.3"

😢 주의사항

나는 파이썬 초보다.

대학교에서 쥬피터 이용해서 네이버에 손흥민 검색했을 때 나오는 뉴스결과 긁어본게 전부다.

근데 pyVHR 를 이용해서 프로젝트를 하나 해보고 싶어서 하고있는데, 하다보니 유용하게 해볼게 많아서 기록해 두려고 한다.

 

GitHub - phuselab/pyVHR: Python framework for Virtual Heart Rate

Python framework for Virtual Heart Rate. Contribute to phuselab/pyVHR development by creating an account on GitHub.

github.com


폴더에 동영상을 넣고 분석을 돌릴 때 해당 디렉토리의 영상을 지우고 새롭게 찍은 영상을 업로드 하는 방식으로 진행하려고 한다.

그래서 파일을 폴더에 담기 전 폴더를 비우는 작업이 필요했다. 다른 곳에서도 사용할 일이 많을 것 같아서 기록해두면 유용할 것 같다.

def clear_folder(folder_path, target_extension):
    for filename in os.listdir(folder_path):
        if filename.endswith(target_extension):
            file_path = os.path.join(folder_path, filename)
            try:
                if os.path.isfile(file_path):
                    os.unlink(file_path)
            except Exception as e:
                print(f"Failed to delete {file_path}. Reason: {e}")
folder_path = "/Users/admin/Desktop/pythonProject/AVI/"
target_extension = ".avi"

clear_folder(folder_path, target_extension)

clear_folder 함수를 호출 하면서 폴더의 경로와 파일의 형식을 전달해주면 끝이다.

그러면 정상적으로 .avi 확장자를 가진 파일을 전부 비우게 된다.

처음에는 특정 확장자가 아니라 폴더 전체를 비우게 했었는데 해당 코드는 다음과 같다.

def clear_folder(folder_path):
    for filename in os.listdir(folder_path):
        file_path = os.path.join(folder_path, filename)
        try:
            if os.path.isfile(file_path):
                os.unlink(file_path)
        except Exception as e:
            print(f"Failed to delete {file_path}. Reason: {e}")

 

폴더 경로만 전달해줘서 폴더 자체를 비워버렸다.

'Python' 카테고리의 다른 글

[Python] venv 가상환경에서 프로젝트 실행하기  (0) 2024.01.12
[Python] requirements.txt  (0) 2023.08.24