Python os 모듈을 이용한 파일과 폴더 관리
Python os 모듈을 이용한 파일과 폴더 관리
Python에서 파일과 디렉토리를 관리하려면 os
모듈을 사용하는 것이 일반적입니다. 이 모듈은 파일 시스템과 상호 작용하기 위한 다양한 함수들을 제공하며, 운영 체제에 독립적으로 동작합니다. 즉, 동일한 코드로 Windows, macOS, Linux에서 모두 파일 및 폴더 작업을 수행할 수 있습니다.
1. os
모듈 임포트
먼저, os
모듈을 사용하기 위해 임포트합니다.
import os
2. 디렉토리 작업
2.1 현재 작업 디렉토리 확인
현재 작업 중인 디렉토리를 확인하려면 os.getcwd()
함수를 사용합니다.
= os.getcwd()
current_dir print(f"현재 작업 디렉토리: {current_dir}")
2.2 디렉토리 변경
os.chdir()
함수를 사용하여 작업 디렉토리를 변경할 수 있습니다.
'/path/to/directory')
os.chdir(print(f"작업 디렉토리가 변경되었습니다: {os.getcwd()}")
2.3 디렉토리 생성
os.mkdir()
함수를 사용하여 새 디렉토리를 만들 수 있습니다. 디렉토리가 이미 존재할 경우 오류가 발생하므로, 필요하다면 디렉토리 존재 여부를 먼저 확인하는 것이 좋습니다.
= 'new_folder'
new_dir if not os.path.exists(new_dir):
os.mkdir(new_dir)print(f"디렉토리가 생성되었습니다: {new_dir}")
else:
print(f"디렉토리가 이미 존재합니다: {new_dir}")
2.4 중첩된 디렉토리 생성
중첩된 디렉토리를 한 번에 만들려면 os.makedirs()
함수를 사용합니다. 이 함수는 상위 디렉토리가 없으면 자동으로 만들어줍니다.
= 'parent_folder/child_folder'
nested_dir =True) # 디렉토리가 이미 있어도 오류 발생하지 않음
os.makedirs(nested_dir, exist_okprint(f"중첩된 디렉토리가 생성되었습니다: {nested_dir}")
2.5 디렉토리 내용 목록 가져오기
os.listdir()
을 사용하여 특정 디렉토리의 파일과 폴더 목록을 가져올 수 있습니다.
= os.listdir('.')
directory_contents print("현재 디렉토리 내용:", directory_contents)
2.6 디렉토리 삭제
os.rmdir()
를 사용하여 디렉토리를 삭제할 수 있습니다. 이 함수는 비어 있는 디렉토리만 삭제할 수 있으며, 비어 있지 않은 디렉토리를 삭제하려면 추가 처리가 필요합니다.
if os.path.exists(new_dir):
os.rmdir(new_dir)print(f"디렉토리가 삭제되었습니다: {new_dir}")
else:
print(f"삭제할 디렉토리가 존재하지 않습니다: {new_dir}")
3. 파일 작업
3.1 파일 생성
Python의 기본 파일 처리 방식을 사용하여 파일을 생성할 수 있습니다. os
모듈은 파일을 직접 생성하지 않지만, 기본 파일 작업을 보완할 수 있습니다.
with open('example.txt', 'w') as file:
file.write("Hello, world!")
print("파일이 생성되었습니다: example.txt")
3.2 파일 삭제
os.remove()
함수를 사용하여 파일을 삭제할 수 있습니다.
if os.path.exists('example.txt'):
'example.txt')
os.remove(print("파일이 삭제되었습니다: example.txt")
else:
print("삭제할 파일이 존재하지 않습니다.")
3.3 파일 이름 변경 및 이동
os.rename()
함수를 사용하여 파일의 이름을 변경하거나 파일을 다른 디렉토리로 이동할 수 있습니다.
# 파일 이름 변경
'old_file.txt', 'new_file.txt')
os.rename(print("파일 이름이 변경되었습니다.")
# 파일 이동
'new_file.txt', 'new_folder/new_file.txt')
os.rename(print("파일이 이동되었습니다.")
4. 파일 및 폴더 존재 여부 확인
4.1 경로 존재 여부 확인
os.path.exists()
를 사용하여 파일이나 폴더가 존재하는지 확인할 수 있습니다.
if os.path.exists('example.txt'):
print("파일이 존재합니다.")
else:
print("파일이 존재하지 않습니다.")
4.2 파일 또는 디렉토리 구분
파일인지 디렉토리인지 확인하려면 os.path.isfile()
또는 os.path.isdir()
를 사용합니다.
# 파일인지 확인
if os.path.isfile('example.txt'):
print("example.txt는 파일입니다.")
# 디렉토리인지 확인
if os.path.isdir('new_folder'):
print("new_folder는 디렉토리입니다.")
5. 파일 및 폴더 속성
5.1 파일 크기 확인
os.path.getsize()
를 사용하여 파일의 크기를 바이트 단위로 확인할 수 있습니다.
= os.path.getsize('example.txt')
file_size print(f"파일 크기: {file_size} 바이트")
5.2 파일의 마지막 수정 시간 확인
os.path.getmtime()
을 사용하여 파일의 마지막 수정 시간을 확인할 수 있습니다.
import time
= os.path.getmtime('example.txt')
mod_time print(f"마지막 수정 시간: {time.ctime(mod_time)}")