테크 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 함수는 디렉토리를 복사하는 데 사용됩니다.

 
그 다음 게시글에서는 본격적인 파일을 자동으로 분류하고 그룹핑하는 절차를 다뤄볼 예정이다.