테크 field 에서 보고 느낀 것들/데이터에 대한 목마름
[Python 파일 자동화 분류] (1) Syntax 숙지
Cool jazz cat
2024. 12. 1. 18:06
python 의 기본언어들 중에 파일을 읽고, 접근하는 언어들을 숙지하자.
파이썬으로 번거롭기 짝이 없는, 파일 정리를 효율적으로 해보자. 그 전에 기본적으로 알아야할 파이썬의 문법을 정리했다.
variable = ["A", "B", "C"] 형태로 데이터 생성
# ---------- 기본 syntax ----------
fruits = ["사과", "배", "감"]
# 리스트, 목록형태의 데이터 생성
print(fruits[0])
# 1번째 데이터 조회
fruits.append('망고')
print(fruits) fruits = ["사과", "배", "감", "망고"]
# 망고 과일 추가하기
with open 으로 파일을 오픈하고 쓰기
# ---------- 파일 다루기 ----------
with open("spart.txt", 'w') as f:
f.write(data)
# with open("파일_이름", '파일_열기_모드')
# r : 읽기모드, w : 쓰기모드, w+ : 읽기,쓰기 모두 가능
# ----------- 1)파일에 데이터 넣기(쓰기) ---------
data = "파일을 열고, 데이터 입력하기"
with open("sparta.txt", 'w') as f:
f.write(data)
# ----------- 2)파일 읽기 ---------
with open("sparta.txt", 'w') as f:
data = "파일을 열고, 데이터 입력하기"
# 데이터를 생성한다.
f.write(data)
f.seek(0)
line = f.read()
# 파일 전체 내용 읽어와서 변수 line 에 저장
print(line)
os.path.____()에 자주 사용되는 메서드의 활용 방법
Syntax | Practice | Answer |
os.path.exists(path) *파일, 디렉토리 존재 여부 확인* |
import os path = './dir/sample.txt' os.remove(path) print(os.path.exists(path)) |
False (path 를 삭제처리 했으므로, 존재여부는 false값) |
os.path.splitext(variable) *경로의 파일명과 그 경로를 리턴* |
import os import shutil base_folder = './workspace' file_list = os.listdir(base_folder) for file in file_list: print(file) filename, ext = os.path.splitext(file) |
2024 이력서 모음, pdf |
os.path.join () *경로, 파일명을 결합해서 새로운 경로를 설정한다.* |
path = "./dir" file = "test1.txt" print("join(): " + os.path.join(path, file)) |
join(): ./2024 이력서 모음/AI 서비스기획_수료증 |
os.rename (path1, path2) * 파일 이름 경로 바꾸기* |
import os path1 = './dir/sample_00.txt' path2 = './dir/sample_01.txt' os.rename(path1, path2) |
path1 에서 path2 로 변경 |
os.mkdir (path) *절대 경로 형태로 폴더 만들기* |
import os
path = '/Users/admin/Library/Mobile Documents/com~apple~CloudDocs/2024 이력서 모음/november_file'
os.mkdir (path)
|
november_file 이란 파일 생성 (*주의* 절대경로는 어떻게 찾는지? : icloud에 있는 절대 경로는 /Users/admin/Library/Mobile Documents/com~apple~CloudDocs/ 이다. os.path.exists 를 활용해서 콘솔에 출력된 경로를 복붙한다.) |
os.listdir (path) *(디렉토리 내 파일, 디렉토리 경로)를 객체에 담아서 반환한다* |
import os
path = '/Users/admin/Library/Mobile Documents/com~apple~CloudDocs/2024 이력서 모음'
file_list = os.listdir(path)
print(file_list)
|
['file1.txt', 'file2.txt', 'subdirectory'] 모든 파일 출력 |
os.path method 에서 가장 많은 실수는 경로다.
경로를 제대로 찾아야 파일을 불러올 수 있으니, print(f"{path} 파일이 있다면 존재한다를 출력한다.") 의 코드를 통해
디렉토리가 있는지 여부를 체크한 후, 잘못된 경로를 수정한다.
import os
# os 라이브러리를 사용한다.
path = './2024 이력서 모음'
# 상대 경로 중 현재 있는 경로 기준으로 ./2024 이력서 모음 경로,파일에 접근한다.
if os.path.exists(path):
print(f"{path} 파일이 존재합니다.")
# 있다면 '파일이 존재합니다.' 는 값을 출력한다.
else:
print(f"{path} 파일이 존재하지 않습니다.")
import os
path = './2024 이력서 모음'
if os.path.isdir(path):
print(f"{path} 는 디렉토리입니다.")
else:
print(f"{path} 는 디텍토리가 아니다.")
shutil 라이브러리를 여러 메서드로 사용해보기
Syntax | 의미 |
import shutil shutil.copy('원본파일.txt', '새파일.txt') | shutil 모듈의 copy 함수는 파일을 복사하는 데 사용됩니다. 다음은 복사 함수의 사용 예입니다. |
import shutil shutil.move('원본파일.txt', '이동할폴더/새파일.txt') | shutil 모듈의 move 함수는 파일을 이동하는 데 사용됩니다. 다음은 이동 함수의 사용 예입니다. |
import shutil shutil.remove('삭제할파일.txt') | shutil 모듈의 remove 함수는 파일을 삭제하는 데 사용됩니다. 다음은 삭제 함수의 사용 예입니다. |
import shutil shutil.copytree('원본폴더', '새폴더') | shutil 모듈의 copytree 함수는 디렉토리를 복사하는 데 사용됩니다. |
그 다음 게시글에서는 본격적인 파일을 자동으로 분류하고 그룹핑하는 절차를 다뤄볼 예정이다.