[Python] 파일 다루기
2024. 7. 7. 02:02ㆍDevelopers 공간 [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
반응형
'Developers 공간 [Shorts] > Software Basic' 카테고리의 다른 글
[Markdown] README 템플릿 (0) | 2024.09.19 |
---|---|
[PyTorch] 모델의 state_dict 다루기 (0) | 2024.07.14 |
[Git] 작업중인 Repository History 분석 (0) | 2024.04.02 |
[Nvidia] GPU OOM Error 나는 경우 (+Tensorflow) (0) | 2024.04.02 |
[Gradio] Gradio 기초 (0) | 2024.03.25 |