python(0821-0908)/공브로(0821-0824)

[공브로] 파일조작 : os, glob, shutil

나도초딩 2022. 8. 24.

공브로 유튜브 학습

1. 파일 조작 기초

# os 파일, 폴더 조작

os.getcwd()

os.mkdir('폴더')

os.listdir()

os.rmdir('폴더')

 

# 파일 생성

fname = '파일'+'.txt'

f = open(fname, 'w')

f.close()

 

# 폴더,파일 조회 : glob.glob('파일*txt')

 

# 파일 이동 : shutil.move(파일, '.\\폴더\\')

 

2. 기본 : 파일,폴더 만들고, 폴더로 이동시키기

import os
import shutil

# 현재 위치 Current Working Directory
cwd = os.getcwd()
print("getcwd ::::::: " + cwd)

# 폴더 만들고, 지우기
os.mkdir('폴더')
os.rmdir('폴더')
os.mkdir('이동할폴더')
os.listdir()

# 폴더 여러개 만들기
for i in range(5):
    name = 'folder'+str(i)
    os.mkdir(name)

os.listdir()

# 파일 만들기
fname = '파일'+'.txt'
f = open(fname, 'w')
f.close()

# 파일 이동
file = '파일.txt'
shutil.move(file,'.\\이동할폴더\\')

# 파일,폴더 여러개 이동
file_list = ['folder0','folder1','folder2','folder3','folder4']
for file2 in file_list:
    shutil.move(file2, '.\\이동할폴더\\')

 

3. 활용 : 연도_월 파일리스트 만들고, 파일 선택 일괄 이동

해당 연도 폴더 만들어서,

월 파일을 해당연도 폴더로 이동시키기

Key Point

**연과 월의 리스트를 만들고, for 문으로 돌린다.

**방법1) 옮길 파일을 if 로 체크하며, filelist 에 append로 요소를 추가 후, 옮긴다.

**방법2) 옮길 파일을 선택( glob.glob )해서, shutil.move 로 옮긴다.

import os
import shutil
import glob



# 2018~2019 폴더 만들고,
# 파일 만든 후 file_2018_1.txt ~ file_2020_12.txt
# 2018 2019 2020 폴더로 이동 시키기

# 연 리스트 만들기
years = ['2018','2019','2020']

# 연도 폴더 만들기
for year in years:
	os.mkdir(year)


## 월 리스트 만들기
# months = []
# for mo in range(1,13)
contents = [str(mo) for mo in range(1,13)]

# 파일 만들기 : file_2018_1.txt ~
for year in years:
    for mo in contents:
        fname = 'file_'+year+'_'+mo+'.txt'
        f = open(fname,'w')
        f.close()

        
# 옮길 파일리스트 생성(1)
contents = os.listdir()
file_list = []
for item in contents:
    if 'file_' in item:
        file_list.append(item)

# 옮길 파일 리스트 생성 (2) : glob
file_list2 = glob.glob('file*txt')
        
# 파일 이동
for file in file_list2:
    if '2018' in file:
        shutil.move(file, '.\\2018\\')
    if '2019' in file:
        shutil.move(file, '.\\2019\\')
    if '2020' in file:
        shutil.move(file, '.\\2020\\')

댓글