728x90
SMALL
디렉토리 생성
os.mkdir() : 지정된 경로에 디렉토리를 생성.
os.makedirs() : 인자로 받은 경로에 디렉토리를 생성. 중간 경로에 해당하는 디렉토리가 존재하지 않으면, 필요한 모든 중간 디렉토리도 생성.
import os
if os.path.exists('package1'): # 해당 경로에 파일이나 디렉토리의 존재 여부를 확인
print('ok') # 있으면 'ok' 출력
else:
os.mkdir('package1') # 없으면 디렉토리 생성
os.makedirs('package2/package3/package4') # 중간 디렉토리도 모두 생성
디렉토리 및 파일 복사
shutil.copy() : 파일을 복사하는 함수. 인자로 복사할 파일의 경로와 복사 대상 파일의 경로를 지정할 수 있다.
shutil.copytree() : 디렉토리와 그 하위 디렉토리 및 파일을 복사하는 함수. 디렉토리를 복사할 때는 shutil.copy() 함수보다 shutil.copytree() 함수를 사용해야 한다.
import shutil
shutil.copy('print.py', 'package1') # 파일 복사
shutil.copytree('testdir','package1/testdir') # 하위 디렉토리 및 파일 모두 복사
SMALL
디렉토리 및 파일 삭제
shutil.rmtree() : 인자로 받은 디렉토리를 재귀적으로 삭제하는 함수. 디렉토리 내부의 모든 파일과 서브디렉토리도 함께 삭제.
os.remove() : 파일을 삭제하는 함수. 함수의 인자로 파일 경로를 입력하면 해당 파일이 삭제된다.
import os
import shutil
shutil.rmtree('package2') # 디렉토리 내부의 모든 파일과 서브 디렉토리 삭제
os.remove('test1.txt') # 해당 파일 삭제
디렉토리 및 파일 이동
shutil.move() : 파일 또는 디렉토리를 다른 위치로 이동시키는 함수.
import shutil
shutil.move('print.py', 'package1/testdir') # 파일 해당 디렉토리로 이동
예제(+ glob.glob())
1. 사용자 입력으로 경로(path)를 받는다.
2. 해당 경로에 있는 모든 '.txt'파일 정보를 받는다.
3. '.txt' 파일의 이름 앞에 모두 마직막 파일 수정 날짜를 붙인다.(ex:2023-05-14_test1.txt)
4. newdir 이라는 디렉토리를 생성한다.
5. 수정된 '.txt'파일을 모두 newdir 디렉토리로 이동시킨다.
glob.glob() : 인자로 파일 경로 패턴을 받으며, 해당 패턴과 일치하는 모든 파일의 리스트를 반환. * 와 ? 와 같은 특수 문자를 사용하여 패턴을 지정.
import os
import datetime
import shutil
import glob
path = input('path:') # 사용자 입력
os.chdir(path) # 경로 이동
# 해당 경로에 'newdir' 디렉토리가 있는지 확인
if not os.path.exists('newdir'):
os.mkdir('newdir') # 없으면 디렉토리 생성
# os.walk() : 지정한 디렉토리와 그 하위 디렉토리를 순회하면서 모든 파일과 폴더에 대한 정보를 제공.
for dirpath, dirnames, files in os.walk('./'):
for file in os.scandir(dirpath):
if file.name.endswith('.txt'): # 문자열 끝이 '.txt'로 끝나는지 여부 검사
tm = datetime.datetime.fromtimestamp(file.stat().st_mtime)
new_file = str(tm.year) + '-' + str(tm.month) + '-' + str(tm.day) + '-' + file.name
os.rename(dirpath + '/' + file.name, new_file) # 파일 이름 변경
file_ls = glob.glob('*.txt') # 모든 .txt 파일의 리스트
for name in file_ls:
shutil.move(name, 'newdir/') # 파일 이동
print('over!!')
728x90
LIST
'Python' 카테고리의 다른 글
[Python] 파일 읽고 쓰기(+ 임시 디렉토리 및 파일 생성 방법) (1) | 2023.05.17 |
---|---|
[Python] os listdir()과 scandir()(st_atime, st_mtime, st_ctime) (1) | 2023.05.14 |
[Python] print 함수 사용법(포맷출력, f-string, sep&end인자, 파일출력) (0) | 2023.05.11 |
CMD(명령 프롬프트)창에서 pip install 명령어 안될 때(환경변수 설정) (0) | 2023.05.07 |