[Python] 파일 다루기

2024. 7. 7. 02:02Developers 공간 [Shorts]/Software Basic

728x90
반응형
<분류>
A. 수단
- OS/Platform/Tool : Linux, Kubernetes(k8s), Docker, AWS
- Package Manager : node.js, yarn, brew, 
- Compiler/Transpillar : React, Nvcc, gcc/g++, Babel, Flutter

- Module Bundler  : React, Webpack, Parcel

B. 언어
- C/C++, python, Javacsript, Typescript, Go-Lang, CUDA, Dart, HTML/CSS

C. 라이브러리 및 프레임워크 및 SDK
- OpenCV, OpenCL, FastAPI, PyTorch, Tensorflow, Nsight

 


1. What? (현상)

Python을 활용하다 보면, bash로 작업할만한 파일과 폴더를 다뤄야하는 경우도 있습니다.

 

따라서 폴더와 파일을 다루는 코드를 정리하고자합니다.


2. Why? (원인)

  • X

3. How? (해결책)

 

폴더와 파일로 나누어 설명하겠습니다. 

 

시작하기에 앞서 path가 존재하는지를 확인하기 위해 아래와 같은 함수를 활용합니다. 

import os

os.path.exists('file_path')

 

또한 파일인지 폴더인지는 아래와 같은 함수를 활용해 확인합니다.

import os

os.path.isfile('file_path')

os.path.isdir('directory_path')

 

1-0. 폴더 생성

 

폴더를 생성하는 방법은 아래와 같이 진행합니다.

from pathlib import Path

Path('directory_path').mkdir(parents=True, exist_ok=True)

 

1-1. 폴더 복사하기

 

폴더전체를 복사하는 방법은 아래와 같습니다.

import shutil

shutil.copytree('directory_path_from', 'directory_path_to')

 

1-2. 폴더 삭제하기 

 

존재하는 폴더를 삭제하는 방법은 아래와 같습니다.

import os

os.removedirs('directory_path')

import shutil
 
shutil.rmtree('directory_path')

 

폴더를 이동하는 방법과 이름을 바꾸는 방법은 아래 파일과 같아 한번에 설명하겠습니다.

 

1-3. 폴더 압축하기

 

폴더를 압축하는 방법은 아래와 같습니다.

import tarfile

target_path = "./Folder"

with tarfile.TarFile(name='Compressed.tar', mode='w', format=tarfile.GNU_FORMAT) as tf:
    tf.add(target_path)

 

2-1. 파일 복사하기 

 

파일을 복사하는 방법은 아래와 같습니다.

import shutil

shutil.copyfile('file_path_from', 'file_path_to')
shutil.copy('file_path_from', 'file_path_to')

 

2-2. 파일 삭제하기

 

존재하는 파일을 삭제하는 방법은 아래와 같습니다.

import os

os.remove('file_path')

 

2-3. 파일/폴더 이동하기

 

파일을 이동시키는 방법은 아래와 같습니다.

import shutil

shutil.move('path_from', 'path_to')

 

2-4. 파일/폴더 이름 바꾸기

 

파일의 이름을 바꾸는 방법은 아래와 같습니다.

import os

os.rename('path_from', 'path_to')

 

2-5. 파일 압축하기

 

파일을 tar로 압축하는 방법은 아래와 같습니다.

import tarfile

target_path = "./Folder/*"
all_list = glob.glob(target_path) 
with tarfile.TarFile(name='Compressed.tar', mode='w', format=tarfile.GNU_FORMAT) as tf:
    for file in all_list:
        tf.add(file)

 


 

728x90
반응형