PC를 사용하다보면 File & Folder 는 컨트롤해야하는 경우가 많습니다. 그래서 Python을 사용해 컨트롤을 해보시죠. (Document)
당신이 만드시는 코드가 조금만 커져도 File & Folder 는 사용하게 됩니다. 이 포스트를 하는 이유는 사실 제가 앞으로 할 포스트에서는 거의 사용할 필요 없이 만들려고 합니다. 그래서 꼭 필요하지만 제가 이야기 하지 않을 것 같아 먼저 작성해봅니다. Python 3.3 이상에는 pathlib를 사용해도 괜찮습니다.
File
- 용도: 텍스트 작성, 코드 저장, 음악/영상 재생 등 다양한 작업에서 데이터를 기록하고 읽는 데 사용됩니다.
- 정의: 데이터를 저장하는 기본 단위로, 문서, 이미지, 동영상 등 다양한 형태로 존재합니다.
- 구조: 이름과 확장자로 구분되며, 특정 프로그램이 읽고 쓸 수 있는 형식으로 저장됩니다.
Folder
- 용도: 파일을 정리하고 분류해 관리하기 쉽게 하며, 프로젝트나 작업 흐름을 체계적으로 구성하는 데 유용합니다.
- 정의: 파일을 그룹화하여 체계적으로 관리할 수 있는 저장 공간입니다.
- 구조: 파일이나 다른 폴더(하위 폴더)를 포함할 수 있으며, 계층 구조로 구성됩니다.
File & Folder Operation Code
import os
# get os environ
print(os.environ['PATH'])
# get current path
print(os.getcwd())
# get upper path
os.chdir('..//')
print(os.getcwd())
# get current folder list
os.chdir(os.path.dirname(os.path.abspath(__file__)))
print(os.listdir())
# Create and Delete file folder
if not os.path.isdir('temp'):
os.mkdir('temp')
print(os.listdir())
os.chdir('./temp')
print(os.getcwd())
os.chdir('..//')
print(os.getcwd())
os.removedirs('temp')
print(os.listdir())
# Only current fold name without path
curr_path = os.path.dirname(os.path.abspath(__file__))
print(os.path.basename(curr_path))
# Current fold path
print(os.path.dirname(curr_path))
# Split Path + Current Fold
print(os.path.split(curr_path))
# Check exist path
print(os.path.exists(curr_path))
os.environ[‘PATH’] : Python이 실행된 환경에서 환경변수를 가지고 옵니다.
os.getcwd() : 현재 위치를 파악합니다.
os.chdir(‘folder’) : 현재 위치를 이동시킵니다.
os.mkdir(‘folder’) : 폴더를 생성합니다.
os.removedirs(‘folder’) : 폴더를 삭제합니다.
os.remove(‘file’) : 파일을 삭제합니다.
외부 파일을 불러오거나 특정 내용을 저장해야될때 등 여러가지 동작에서 사용하게 됩니다. 여기서 파일을 생성하고 쓰는 것은 작성하지 않겠습니다. 따로 작성하려는 이유는 좀 설명이 많아야되서 지루할 것 같아서 입니다.
포스트와 상관없이 처음 Mac을 봤을때 폴더 형식이 아니라 파일에 Tag를 놨을때 참 혁신적이고 활용도가 높다고 생각했던 기억이 나네요. 그런데 제가 너무 폴더에 익숙해서 알게된지 20년이 넘었는데 아직도 Tag 방식을 잘 사용하지 못합니다. 그리고 아는 사람중에도 사용하시는 분이 거의 없네요.
사실 최근에는 os 보다는 pathlib 으로 분리된 기본 라이브러리를 권장 하는 것으로 알고 있습니다. 향상된 편의 기능도 많이 있고요. pathlib 도 시간이 되는데로 따로 작성을 해봐야겠습니다.