RPA/Python

[OS] 파일 및 폴더 관리

꼰대 2021. 5. 4. 15:37

import os

import time

import datetime



# 현재 폴더 (C:\PythonWorkspace)

print(os.getcwd())

 

# 폴더 변경 (C:\PythonWorkspace\RPA)

os.chdir('RPA')

print(os.getcwd())

 

# 상위 폴더 이동 (C:\PythonWorkspace)

os.chdir('..')

print(os.getcwd())

 

# 2단계 상위 폴더 이동

os.chdir('RPA')     # C:\PythonWorkspace\RPA

print(os.getcwd())

os.chdir('../..')   # C:\

print(os.getcwd())

 

# 절대 경로 이동

os.chdir('C:/PythonWorkspace/RPA')

print(os.getcwd())

 

# 파일 경로 생성

# 절대 경로로 파일 생성 (현재 폴더 가져와 파일명 더하기)

file_path = os.path.join(os.getcwd(), 'myfile.txt')

print(file_path)

 

# 파일 경로에서 폴더 정보 가져오기

# 기존에 생성된 파일과 같은 경로에 새로운 파일을 만들 경우 사용

file_path = os.path.dirname(r'C:\PythonWorkspace\myfile.txt')

print(file_path)

 

# 파일 정보 가져오기

# 파일 생성 날짜 : getctime

# 파일 수정 날짜 : getmtime

# 파일의 마지막 접근 날짜 : getatime

ctime = os.path.getctime('C:/PythonWorkspace/checkbox.png')

print(ctime)

ctime = datetime.datetime.fromtimestamp(ctime).strftime('%Y-%m-%d %H:%M:%S')

print(ctime)

 

# 파일 크기 (byte)

size = os.path.getsize('C:/PythonWorkspace/checkbox.png')

print(size)

 

# 폴더 내 파일/폴더 목록 가져오기

# 현재 폴더 내 파일/폴더 목록 가져오기

dirlist = os.listdir()

print(dirlist)

 

# 특정폴더 내 파일/폴더 가져오기

dirlist = os.listdir('C:/PythonWorkspace/RPA')

print(dirlist)

 

# 하위폴더 포함 모든 파일 목록 가져오기

filedir = os.walk('C:/PythonWorkspace/RPA')

# 리스트 구조 : 폴더명, 하위폴더명, 파일명

for root, dirs, files in filedir:

    print(root, dirs, files)

 

# 폴더 내 특정 파일 찾기

filename = 'checkbox.png'

result = []

 

for root, dirs, files in os.walk(os.getcwd()):

    if filename in files:

        result.append(os.path.join(root, filename))

 

print(result)

 

# 폴더 내 패턴 찾기

import fnmatch

 

pattern = '*.png'

result = []

 

for root, dirs, files in os.walk(os.getcwd()):

    for name in files:

        # 파일명과 패턴 비교

        if fnmatch.fnmatch(name, pattern):

            result.append(os.path.join(root, name))

 

print(result)

 

# 주어진 경로가 파일인지 폴더인지 확인

folder = os.path.isdir('RPA')

files = os.path.isfile('RPA')

wrong = os.path.isdir('RPAAAA'# 잘못된 경로일 경우

 

print('폴더인가?', folder)  # True

print('파일인가?', files)   # False

print('폴더인가?', wrong)   # False

 

# 주어진 경로가 존재하는지 확인

if os.path.exists('RPA'):

    print('존재합니다.')

else:

    print('존재하지 않습니다.')

 

# 파일 만들기

open('new_file.txt''a').close()

 

# 파일명 변경

os.rename('new_file.txt''rename_file.txt')

 

# 파일 삭제

os.remove('rename_file.txt')

 

# 폴더 만들기

os.mkdir('new_folder')

# 절대 경로

# os.mkdir('C:/Pythonworkspace/RPA/new_folder')

 

# 하위폴더까지 한꺼번에 만들기

os.makedirs('new_folders/a/b/c')

 

# 폴더명 변경

os.rename('new_folder''rename_folder')

 

# 폴더 삭제

os.rmdir('rename_folder')

 

# 폴더 내 파일이나 폴더가 있을 때 모두 삭제

import shutil

 

shutil.rmtree('new_folders')

 

# 폴더 안으로 파일 복사

shutil.copy('checkbox.png''new_folder')

 

# 대상 폴더로 복사하면서 파일명도 변경

shutil.copy('checkbox.png''new_folder/rename_checkbox.png')

 

# copy는 2번째 Args에 폴더, 파일 올 수 있고 copyfile은 파일만 올 수 있다.

shutil.copyfile('checkbox.png''new_folder/rename_checkbox.png')

 

# copy, copyfile : 메타정보 복사 안함

# copy2 : 메타정보 복사

shutil.copy2('checkbox.png''new_folder')

 

# 폴더 복사 (하위 폴더/파일 모두 복사)

shutil.copytree('RPA/mail''PRA/copied_mail')

 

# 폴더 이동 (mail폴더를 windows폴더 하위로 이동)

shutil.move('RPA/mail''PRA/windows')

반응형

'RPA > Python' 카테고리의 다른 글

[selenium] 브라우저 및 Handle 컨트롤  (0) 2021.05.05
[selenium] 설치 및 환경 설정  (0) 2021.05.05
[pyautogui] 메세지 창  (0) 2021.05.04
[pyautogui] 키보드 입력  (0) 2021.05.04
[pyautogui] 프로그램 창 다루기  (0) 2021.05.03