본문 바로가기
Programming/Python

[Python] 디렉토리 (Directory) (2)

by goatlab 2023. 6. 20.
728x90
반응형
SMALL

디렉토리 이름 변경

 

 

rename() 메서드를 사용하여 기존 디렉토리의 이름을 변경한다.

 

os.rename('old_directory_name', 'new_directory_name')

 

디렉토리 제거

 

rmdir() 메서드를 사용하여 디렉토리를 제거한다.

 

os.rmdir('directory_to_remove')

 

디렉토리 재귀적으로 제거

 

removedirs() 메서드를 사용하여 디렉토리와 그 내용을 재귀적으로 제거한다.

 

os.removedirs('parent_directory/child_directory')

 

디렉토리 반복

 

walk() 메서드를 사용하여 디렉토리와 그 하위 디렉토리를 반복한다. 이 함수는 지정된 디렉토리에서 찾은 디렉토리 경로와 디렉토리 이름 및 파일 이름을 포함하는 이터레이터를 반환한다.

 

for dirpath, dirnames, filenames in os.walk('.'):
    print(f"디렉토리 경로: {dirpath}")
    print(f"디렉토리 이름: {dirnames}")
    print(f"파일 이름: {filenames}")

 

os.walk() 메서드

 

path
  • 디렉토리 이름을 나타낸다.
  • 현재 디렉토리를 지정하려면 점 (.)을 사용한다.
topdown
  • True인 경우 디렉토리와 하위 디렉토리를 상위에서 하위로 순회한다.
  • False인 경우 디렉토리와 하위 디렉토리를 하위에서 상위로 순회한다.
oneerror
  • 오류가 감지되었을 떄 수행할 작업을 나타낸다.
  • 함수를 지정 가능하다.
followlinks
  • True인 경우 시스템에서 지원하는 경우 심볼릭 링크를 따라 디렉토리를 방문한다.
  • False인 경우 walk() 메서드가 디렉토리로 해결되는 심볼릭 링크를 따라가지 않는다.

 

실습

 

import os

# 현재 작업 디렉토리 확인 : getcwd()
current_directory = os.getcwd()
print(current_directory)

# 새 디렉토리 생성 : mkdir()
directory = 'new_directory'
if not os.path.exists(directory):
    os.mkdir(directory)
    print(f"{directory} 폴더가 생성되었습니다.")
    
else:
    print(f"{directory} 폴더는 이미 존재합니다.")


# 중첩된 디렉토리 생성 : makedirs()
directory = 'parent_directory/child_directory/grandchild_directory'
if not os.path.exists(directory):
    os.makedirs(directory)
    print(f"{directory} 폴더가 생성되었습니다.")
    
else:
    print(f"{directory} 폴더는 이미 존재합니다.")

# 현재 작업 디렉토리 변경 : chdir()
# os.chdir('new_directory')
# current_directory2 = os.getcwd()
# print(current_directory2)

# 디렉토리 이름 변경 : rename()
os.rename('new_directory', 'old_directory')
os.rename('old_directory', 'new_directory')

# 디렉토리 제거 : rmdir()
os.rmdir('new_directory')

# 디렉토리 재귀적으로 제거 : removedirs()
os.removedirs(directory)

# 디렉토리 반복 : walk()
current_directory = os.getcwd()
print(current_directory)

directory = 'parent_directory/child_directory/grandchild_directory'
os.makedirs(directory)

for dirpath, dirnames, filenames in os.walk('parent_directory'):
    print(f"디렉토리 경로: {dirpath}")
    print(f"디렉토리 이름: {dirnames}")
    print(f"파일 이름: {filenames}")
728x90
반응형
LIST