본문 바로가기
프로그래밍/Python

zipfile.ZipFile로 압축해제시 폴더안에 있는 파일은 어떻게 가져오는지

by Mr.noobiest 2023. 3. 14.

zipfile로 어떤 압축파일을 해제할때 .zip 파일내에 또다른 폴더가 있고 그안에 또다른 폴더가 있는 상황이였다,

이때 원하는 파일만 추출하는 방법을 알아봤는데, 결론은 다음과 같다.

 

1) 압축을 해제한다.

2) 압축 해제  후 해당 경로의 파일을 os.rename으로 이동한다.

3) 끝.

 

딱, 그 부분만  압축해제를 하고 싶은데 도저히 방법을 모르겠다.chatGPT도 이상한 얘기만 한다 ㅠㅠ

 

다음은 예시이다.

 

import os

zip_file_path = "압축파일의 경로.zip" #ex)  ./my_zipfile.zip
extract_dir = "압축해제되는 파일의 위치" #ex) ./folder/location

with zipfile.ZipFile(zip_file_path, 'r') as zipObj:
    listOfFileNames = zipObj.namelist()
    for fileName in listOfFileNames:
        print(fileName)

       #아래 if문은 압축파일안에 내가 원하는 파일이 있는지 체크하는 부분이다.
        if fileName.endswith("확장자"):
            file_name = os.path.basename(fileName)  # 파일 이름만 추출
            hyper_extract_path = os.path.join(extract_dir)
            zipObj.extract(fileName, hyper_extract_path)            
            os.rename(os.path.join(extract_dir, fileName), '파일을 이동시키고 싶은 위치')

 

결론은 압축해제된 파일을 -> '파일을 이동 시키고 싶은 위치.확장자'로 파일명 변경 + 위치 변경을 시켜주는거다.

 

728x90
반응형