-
파이썬을 이용한 압축 해제와 동시에 파일 이름 변경Python 2018. 4. 17. 14:17728x90
파이썬을 이용한 압축 해제와 동시에 파일 이름 변경
특정 사이트에서 대량의 압축된 파일을 받아 하나의 디렉터리에 풀어야 하는 미션이 떨어졌다.
문제는 같은 파일 명이 중복으로 발생할 수 있다.
이에 대한 해결책으로 다음 2개의 방법으로 고민했다.
- 파일 압축 해제 후 MV 명령어로 이름 변경
- 압축을 해제할 때 PATH를 줄 수 있는가?
1번의 방법은 누구나 쉽게 할 수 있을 것 같았다.
2번의 경우 가능 한지 조차 몰라서 Python에서 압축 관련 모듈인 ZipFile을 살펴보았다.
내용을 확인 결과 압축 파일에서 하나의 파일을 읽을 수 있는 read리는 function이 있다.
이를 이용해 다음과 같이 처리하였다
with ZipFile("filename.zip") as zf: file_list = map(lambda x: "/" + str(uuid.uuid4()), zf.filelist) # 파일 개수만큼 uuid를 생성 idx = 0 for zip_file in zf.namelist(): # 루프를 돌며 하나의 파일을 가져옴 target_path = zip_save_path + file_list[idx] # 저장되는 파일 위치 with open(target_path, "wb") as f: # 저장되는 파일을 쓰기 모드로 오픈 f.write(zf.read(zip_file, pwd=self.password)) # 압축된 파일을 읽어서 타깃 파일로 저장 idx += 1 # 다음 uuid 선택
파일은 내가 원하는 위치에 uuid 값으로 저장된다.
참고자료
728x90'Python' 카테고리의 다른 글
Python3.7 설치와 몇가지 새로운 사실 & pip install 시 SSL 오류 처리 (0) 2018.10.05 Python]paramiko 모듈에서 su 명령어로 계정 전환 (0) 2018.05.18 Python에서 class 선언시 object를 꼭 상속 받자 (0) 2018.04.17 Python과 Java에서 사용가능한 AES 암/복호화 모듈 (2) 2018.01.24 Python에서 virualenv 과 virtualenvwrapper 설치하기 (0) 2017.12.21