본문 바로가기
AI & Data

[Data Science/Colab/Jupyter] 코랩, 주피터에서 압축 푸는 방법: torch, zipfile, patool

by Henry Cho 2023. 8. 3.
728x90

코랩, 주피터에서 압축 푸는 방법

포스트 난이도: HOO_Middle


# 데이터 폴더 압축 풀기

vscode에서 작업을 해야 하는데 자꾸 사이드 프로젝트만 하면 코랩이나 주피터에서 하는 게 습관이 되어 버렸다. 그렇다 보니 실제 연구할 때에도 코랩을 같이 켜놓고 작업하는 습관이 생겨버렸다. 아무튼 이번 포스트에서는 학습시키고 테스트를 하기 위해서 데이터셋의 압축을 풀어줘야 하는데 이때 대표적으로 많이 사용하는 Unzip 방법 3가지에 대해서 살펴보도록 하자. 거두절미하고 그냥 냅다 사용하면 된다.


# torch, !unzip

사실상 가장 많이 사용하는 방법 중 하나가 torch 모듈에서 unzip 기능을 사용하는 것이다. 데이터 분석 과정에서 어차피 파이토치를 사용할 거라면 굳이 다른 모듈을 사용할 필요 없이 torch 하나로 해결이 된다.


import torch
!unzip -q "/content/farmInsects.zip" -d datasets

첫 번째 경로에서는 압축 파일이 저장되어 있는 경로를 작성해 주면 되고 뒷부분에는 어디에 저장할 것인지를 정해서 작성해주면 된다. 글쓴이는 farmInsects라는 압축 파일을 가지고 datasets라는 폴더에 압축을 풀 것이기에 위와 같이 코드를 작성하였다.


import torch
!unzip -q "/content/farmInsects.zip" -d datasets  && rm "/content/farmInsects.zip"  # unzip

참고로 압축파일을 굳이 남겨놓을 필요가 없다면 위와 같이 && 연산자를 활용해서 압축을 풀고 기존 압축 파일 자체를 제거할 수도 있다.


# zipfile

파이썬 IDE나 이제 막 데이터 사이언스로 들어왔다면 zipfile 모듈이 익숙할 수도 있다. zipfile을 사용해도 되지만 코드 작성이 길어지기 때문에 글쓴이는 잘 사용하지는 않는다. 그럼에도 알아둬서 나쁠 게 없는 것이 압축 파일 푸는 게 의외로 이따금씩 에러가 나기도 한다. 파일 자체에서 충돌이 발생해서 압축 푸는데 에러가 발생하는데 여러 기능들을 알아두고 어떤 점이 문제인지 파악하기에 좋다.


zip_path = '/content/farmInsects.zip'
unzip_path = '/content'

import zipfile
with zipfile.ZipFile(zip_path, 'r') as zip:
    zip.extractall(unzip_path)

# patool

patool도 zipfile과 마찬가지로 많이 사용되는 모듈 중 하나인데, 특히 zip이 아닌 다른 확장자명의 압축 파일을 푸는 데에도 좋기에 미국 개발자들 사이에서 많이 사용하는 편이다. 글쓴이 주변에는 zipfile보다도 patool을 많이 사용하는데 사실 딱히 이유는 모르겠다. 그냥 글쓴이는 torch가 좋다. 그래도 다다익선이라고 여러 기능들을 알아두면 상황에 따라서 빠르게 대응할 수 있어서 좋긴 하다.


!pip install patool
import patoolib
patoolib.extract_archive("/content/farmInsects.zip")

 

728x90

댓글