[Python] 파이썬 os 모듈 사용법
- -
파이썬에서 os모듈은 운영체제와 상호작용하기 위한 기능을 제공하는 모듈이다. os는 Operation System의 약자로, 이 모듈은 파일 및 디렉터리 관리, 환경 변수 설정, 프로세스 관리 등과 같은 운영체제 관련 작업을 수행하는 데 사용된다.
그럼 os모듈의 주요 메서드에 대해 한 번 알아보는 시간을 가져보자.
파이썬 os 모듈 사용법
1. os.walk()
os.walk() 함수는 디렉터리를 순회하면서 하위 디렉터리와 파일을 검색하는 데 사용되는 파이썬의 유용한 함수 중 하나이다. 이 함수는 시작 디렉터리부터 시작하여 모든 하위 디렉터리와 파일을 탐색하며, 각 디렉터리에서 시작하여 모든 하위 디렉터리와 파일을 검색한다. 이것은 디렉터리 구조를 탐색하고 파일 처리 작업을 수행하는 데 매우 편리하다.
os.walk() 함수는 기본적으로 아래와 같은 구문을 가지고 있다.
import os
for root, dirs, files in os.walk(starting_directory):
# root: 현재 탐색 중인 디렉토리 경로
# dirs: 현재 디렉토리 내의 하위 디렉토리 목록
# files: 현재 디렉토리 내의 파일 목록
# 이곳에서 원하는 작업 수행
아래 코드는 os.walk() 함수를 사용한 간단한 예제 코드이다, 해당 코드는 시작 디렉터리부터 모든 하위 디렉터리와 파일을 순회하며 파일의 절대 경로를 출력한다.
import os
starting_directory = "/path/to/your/directory"
for root, dirs, files in os.walk(starting_directory):
for file in files:
# 파일의 절대 경로를 얻기 위해 os.path.join() 사용
file_path = os.path.join(root, file)
print(file_path)
위 코드에서 /path/to/your/directory를 실제 디렉터리 경로로 바꿔서 사용하면 해당 디렉터리와 그 하위 디렉터리에 있는 모든 파일의 절대 경로를 출력할 수 있다. 이러한 파일 순회 작업은 파일 관리, 데이터 처리 등 다양한 용도로 활용된다.
2. os.listdir()
os.listdir() 함수는 지정된 디렉토리 내의 파일과 하위 디렉터리 목록을 반환하는 파이썬의 내장 함수이다. 이 함수는 간단한 디렉터리 내용 검색 작업을 수행하는 데 사용된다.
os.listdir() 함수의 기본적인 구문은 다음과 같다.
import os
contents = os.listdir(directory_path)
위의 코드에서 directory_path는 디렉토리 내용을 검색할 디렉터리의 경로를 나타낸다.
os.listdir() 함수는 지정된 디렉토리에 있는 모든 파일과 하위 디렉터리의 이름을 리스트로 반환한다. 이 리스트에는 현재 디렉터리 ('.')와 상위 디렉터리 ('..')도 포함된다. 이러한 결과를 가지고 원하는 작업을 수행할 수 있다.
다음은 os.listdir() 함수를 사용한 간단한 예제 코드이다. 아래 코드는 특정 디렉터리 내의 파일 및 하위 디렉터리 목록을 출력하게 된다.
import os
directory_path = "/path/to/your/directory"
try:
contents = os.listdir(directory_path)
for item in contents:
print(item)
except FileNotFoundError:
print(f"The directory '{directory_path}' does not exist.")
위 코드에서 /path/to/your/directory를 실제 디렉터리 경로로 바꾸어 사용하면 해당 디렉터리 내의 파일과 하위 디렉터리 목록이 출력된다. 이러한 파일 및 디렉터리 목록을 가져오는 것은 파일 관리, 데이터 처리; 디렉터리 탐색과 같은 작업에 유용하다.
3. os.path()
os.path 모듈은 파일 시스템 경로와 관련된 다양한 작업을 수행하는 데 사용되는 파이썬 모듈이다. 이 모듈은 파일 및 디렉터리 경로를 조작하고 검사하는 데 도움을 준다. 그럼 os.path 모듈의 주요 함수와 속성 중 일부에 대해 한 번 알아보자.
• os.path.join()
경로 요소를 결합하여 전체 경로를 생성한다. 이 함수는 플랫폼 별 디렉토리 구분자를 올바르게 처리한다.
• os.path.exists()
지정된 경로가 실제로 존재하는지 여부를 확인한다.
• os.path.isfile()
지정된 경로가 파일인지 여부를 확인한다.
• os.path.isdir()
지정된 경로가 디렉토리인지 여부를 확인한다.
• os.path.basename()
전체 경로에서 파일 또는 디렉터리의 이름을 반환한다.
• os.dirname()
전체 경로에서 파일 또는 디렉터리의 부모 디렉터리 경로를 반환한다.
• os.path.splitext()
파일 이름에서 확장자를 분리하여 반환한다.
• os.path.abspath()
상대 경로를 절대 경로로 변환한다.
다음은 위의 함수에 대한 예시 코드이다.
import os
# 경로 요소 결합
path1 = "C:/Users"
path2 = "Username"
full_path = os.path.join(path1, path2)
print("Joined Path:", full_path)
# 경로 존재 여부 확인
file_path = "/path/to/your/file.txt"
if os.path.exists(file_path):
print("File exists:", file_path)
else:
print("File does not exist:", file_path)
# 파일 또는 디렉토리 여부 확인
if os.path.isfile(file_path):
print("It's a file:", file_path)
elif os.path.isdir(file_path):
print("It's a directory:", file_path)
# 파일 이름과 확장자 분리
file_name = "example.txt"
name, extension = os.path.splitext(file_name)
print("File Name:", name)
print("Extension:", extension)
# 절대 경로로 변환
relative_path = "../documents/file.txt"
absolute_path = os.path.abspath(relative_path)
print("Absolute Path:", absolute_path)
Joined Path: C:/Users\Username
File does not exist: /path/to/your/file.txt
File Name: example
Extension: .txt
Absolute Path: I:\github\documents\file.txt
실행 결과
위의 예시 코드의 실행 결과를 보면 경로 조작 및 경로 관련 정보를 얻는 방법을 이해할 수 있다. os.path 모듈은 파일 및 디렉터리 관리 작업에 유용하며, 크로스 플랫폼 호환성을 지원하기 때문에 다양한 운영체제에서 동일한 코드를 사용할 수 있다.
4. os.environ()
os.environ은 파이썬에서 환경 변수(environment Varaibles)를 다루는 데 사용되는 딕셔너리이다. 환경 변수는 운영 체제에서 사용되며, 시스템 또는 이용 프로그램 설정을 저장하고 전달하는 데 사용된다. os.environ을 통해 파이썬 코드에서 환경 변수를 읽거나 설정할 수 있다.
os.environ은 시스템 환경 변수와 현재 파이썬 프로세스의 환경 변수를 포함하는 딕셔너리로, 환경 변수의 이름을 키로 사용하고 해당 값을 값으로 사용한다. 환경 변수를 읽어오거나 설정하기 위해 os.environ 딕셔너리를 사용할 수 있다. 그럼 예제 코드로 os.environ을 사용하는 방법을 간단하게 알아보자, 예제 코드는 특정 환경 변수를 읽고 값을 출력하며, 새로운 환경 변수를 설정하는 코드이다.
import os
# 특정 환경 변수 읽기
username = os.environ.get('USERNAME')
print(f"Username: {username}")
# 새로운 환경 변수 설정
os.environ['MY_VARIABLE'] = 'Hello, World!'
# 설정한 환경 변수 읽기
my_variable = os.environ.get('MY_VARIABLE')
print(f"My Variable: {my_variable}")
위 코드에서 os.environ.get('USERNAME')은 시스템 환경 변수 중 'USERNAME' 환경 변수의 값을 읽어온다. 그리고 os.environ ['MY_VARIABLE']를 사용하여 새로운 환경 변수 'MY_VARIABLE'을 설정한다
이후에는 os.environ.get('MY_VARIABLE')를 사용하여 그 값을 읽어온다. 환경 변수는 보안 정보나 구성 설정과 같은 중요한 데이터를 저장하는 데 자주 사용되며, 파이썬에서 이러한 데이터를 활용하려면 os.environ을 활용하여 접근하고 조작할 수 있다.
5. os.mkdir()
os.mkdir() 함수는 파이썬에서 디렉터리(폴더)를 생성하는 데 사용되는 함수이다. 디렉터리를 만들어야 할 때 os.mkdir() 함수를 사용하여 새 디렉터리를 생성할 수 있다. 이 함수는 다음과 같은 기본적인 구문을 가지고 있다.
import os
os.mkdir(directory_path)
directory_path는 생성할 디렉토리의 경로를 나타내고 os.mkdir() 함수는 지정된 경로에 새 디렉터리를 생성한다. 하지만 주의할 점은 해당 디렉터리가 이미 존재하는 경우 오류가 발생할 수 있다. 따라서 디렉터리가 이미 존재하는지 확인하고 오류를 처리하는 것이 좋다, 아래 예제의 코드를 통해 os.mkdir() 함수로 새로운 디렉터리를 생성하는 방법을 알아보자.
import os
# 생성할 디렉토리 경로
new_directory = "/path/to/new_directory"
# 디렉토리가 이미 존재하는지 확인
if not os.path.exists(new_directory):
# 디렉토리 생성
os.mkdir(new_directory)
print(f"Directory '{new_directory}' created successfully.")
else:
print(f"Directory '{new_directory}' already exists.")
위의 예제 코드에서 /path/to/new_directory를 실제 디렉터리 경로로 변경하고 실행하면, 해당 경로에 새 디렉터리가 생성된다. 디렉터리가 이미 존재하는 경우에 대비하여 os.path.exists() 함수를 사용하여 먼저 디렉터리의 존재 여부를 확인하고, 그 결과에 따라 디렉터리를 생성하거나 이미 존재한다는 메시지를 출력한다.
6. os.rename()
os.rename() 함수는 파이썬에서 파일 또는 디렉터리의 이름을 변경할 때 사용되는 함수이다. 이 함수를 사용하여 파일 또는 디렉터리의 이름을 변경할 수 있으며, 이를 통해 파일 관리 작업을 수행할 수 있다. os.rename() 함수의 기본적인 구문은 다음과 같다.
import os
os.rename(src, dst)
• src
원래 파일 또는 디렉토리의 경로 또는 이름을 나타낸다.
• dst
새로운 이름 또는 경로를 나타낸다.
os.rename() 함수를 사용하여 파일 또는 디렉터리의 이름을 변경할 때, 다음 사항을 주의해야 한다.
1. src는 반드시 존재해야 한다. 즉, 변경하려는 파일 또는 디렉터리가 이미 존재해야 한다.
2. dst로 지정된 경로에 이미 파일 또는 디렉터리가 존재하면, 해당 경로에 있는 파일 또는 디렉터리는 덮어 씌기 된다.
다음은 os.rename() 함수를 사용한 예시 코드이다, 아래 코드는 파일의 이름을 변경한다.
import os
# 원본 파일 경로
old_file = "/path/to/old_file.txt"
# 새로운 파일 경로 (새 이름)
new_file = "/path/to/new_file.txt"
# 파일 이름 변경
try:
os.rename(old_file, new_file)
print(f"File '{old_file}' renamed to '{new_file}' successfully.")
except FileNotFoundError:
print(f"The file '{old_file}' does not exist.")
except FileExistsError:
print(f"The file '{new_file}' already exists.")
위의 예시 코드에서 /path/to/old_file.txt와 /path/to/new_file.txt를 실제 파일 경로로 변경하고 실행하면, os.rename() 함수를 사용하여 파일의 이름을 변경할 수 있다. 코드는 파일 이름을 변경하고, 파일이 존재하지 않거나 새로운 이름의 파일이 이미 존재하는 경우에 대비하여 예외 처리 로직도 추가되었다.
7. os.remove()
os.remove() 함수는 파이썬에서 파일을 삭제하는 데 사용되는 함수이다. 이 함수를 사용하면 지정된 파일을 시스템에서 완전히 제거할 수 있다. os.remove() 함수의 기본적인 구문은 아래와 같다.
import os
os.remove(file_path)
• file_path 삭제할 파일의 경로를 나타낸다.
os.remove() 함수를 사용하여 파일을 삭제할 때, 주의할 점은 아래와 같다.
1. file_path는 반드시 존재하는 파일의 경로여야 한다. 삭제하려는 파일이 이미 존재하지 않으면 FileNotFoundError 예외가 발생하게 된다.
2. 삭제된 파일은 복구할 수 없으므로 주의해서 사용해야 한다.
아래는 os.remove() 함수를 사용한 예시 코드이다, 해당 코드는 특정 파일을 삭제한다.
import os
# 삭제할 파일 경로
file_to_delete = "/path/to/file_to_delete.txt"
try:
os.remove(file_to_delete)
print(f"File '{file_to_delete}' has been successfully deleted.")
except FileNotFoundError:
print(f"The file '{file_to_delete}' does not exist.")
except PermissionError:
print(f"You do not have permission to delete '{file_to_delete}'.")
except Exception as e:
print(f"An error occurred: {e}")
위 코드에서 /path/to/file_to_delete.txt를 실제 파일 경로로 변경하고 실행하면 해당 파일이 삭제된다. 코드는 파일을 삭제하고, 파일이 존재하지 않거나 삭제 권한이 없는 경우에 대한 예외 처리를 수행한다. 파일을 삭제할 때는 신중하게 실행하며, 복구가 불가능하므로 필요한 경우에만 사용해야 한다.
'Programming Language > Python' 카테고리의 다른 글
[Python] 파이썬 split 함수 (0) | 2023.09.23 |
---|---|
[Python] 파이썬 random 모듈 사용법 (0) | 2023.09.21 |
[Python] 파이썬 모듈,라이브러리,패키지의 차이 (0) | 2023.09.17 |
[Python] 파이썬 메모리 구조 (0) | 2023.09.14 |
[Python] 파이썬 함수(def) (0) | 2023.09.11 |
소중한 공감 감사합니다