파이썬 os 모듈

Python OS 모듈은 우리에게 운영 체제 정보를 가져오고 프로세스를 제한적으로 제어할 수 있는 간편한 기능을 제공합니다.

Python OS 모듈

OS 모듈의 함수들은 Windows 플랫폼, Macintosh 또는 Linux와 관계없이 운영 체제의 기본 작업을 수행할 수 있도록 해줍니다. 이 레슨에서는 이러한 함수들과 그들이 제공하는 정보를 살펴보겠습니다. 이러한 함수들과 그들이 제공하는 정보로 여행을 시작해 봅시다.

Python import os

먼저 우리 프로그램에서 OS 모듈을 import해야만 그 어떤 함수들도 실행할 수 있음을 유의해 주세요.

os.name

이 함수는 가져온 OS 모듈의 이름을 제공합니다. 이는 기반 운영 체제에 따라 다릅니다. 현재 ‘posix’, ‘os2’, ‘ce’, ‘nt’, ‘riscos’ 및 ‘java’를 등록합니다. 시스템에서 이를 실행해 봅시다:

>>> print(os.name)
posix

분명히 이는 해석기에 따라 다른 플랫폼을 출력할 수 있습니다.

os.environ

environ은 함수가 아니라 시스템의 환경 변수에 액세스할 수 있는 프로세스 매개변수입니다. 샘플 코드 스니펫을 확인해 봅시다:

import os
output = os.environ['HOME']
print(output)

이 스크립트를 실행하면 다음이 출력됩니다: 환경 변수와 함께 작업하기 위해 이를 사용할 수 있으며, 자세한 내용은 Python 환경 변수 설정에서 확인할 수 있습니다.

os.execvp

execvp 함수는 시스템에서 다른 명령을 실행하는 방법 중 하나입니다. 이 함수에 대한 샘플 코드 스니펫을 확인해 봅시다:

import os
program = "python"
arguments = ["hello.py"]
print(os.execvp(program, (program,) +  tuple(arguments)))

이를 위해 다음과 같은 코드로 hello.py라는 샘플 스크립트를 만들었습니다:

print('Hello')

이 스크립트를 실행하면 다음과 같은 출력이 됩니다:

os.getuid

이 os 모듈 함수는 현재 프로세스의 사용자 ID 또는 UID를 반환합니다. 이는 보통 UID로 알려져 있습니다.

>>> os.getuid()
501

따라서 현재 쉘 프로세스 ID는 501입니다.

os.rename

파이썬 os rename 함수를 사용하면 파일 이름을 쉽게 변경할 수 있습니다.

import os
fileDir = "JournalDev.txt"
os.rename(fd,'JournalDev_Hi.txt')

이를 위해 스크립트에 올바른 권한을 제공해야 합니다.

os.system

파이썬 os system 함수를 사용하면 Python 스크립트에서 명령을 실행할 수 있습니다. 마치 내 쉘에서 실행하는 것처럼 말이죠. 예를 들면:

import os
currentFiles = os.system("users > users.txt")

이 스크립트를 실행하면 동일한 디렉토리에 ‘users.txt’라는 새 파일이 만들어지며 내용은 ‘shubham’입니다. 이는 원래 쉘에서 반환된 것과 같습니다: 이는 매우 강력한 명령이므로 신중하게 사용해야 합니다.

os.error

Python의 os 모듈 오류 클래스는 I/O 관련 오류의 기본 클래스입니다. 따라서 except 절에서 OSError를 사용하여 I/O 오류를 잡을 수 있습니다.

import os

try:
    f = open('abc.txt', 'r')  # file is missing
except OSError:
    print('Error')

os.getpid

이 함수는 현재 프로세스 ID 또는 PID를 반환합니다. 일반적으로 PID로 알려져 있습니다.

>>> os.getpid()
71622

따라서 현재 쉘 프로세스의 사용자 ID는 71622입니다.

os.listdir

이 함수는 현재 작업 디렉토리에 있는 파일과 디렉토리를 나열합니다.

>>> import os
>>> os.listdir()
['.DS_Store', '.localized', 'JournalDev', 'Java', 'Python']

이는 디렉토리와 파일 이름의 반복 가능한 리스트를 반환합니다.

os.uname

이 함수는 현재 실행 중인 운영 체제를 식별하는 정보를 반환합니다.

>>> os.uname()
posix.uname_result(sysname='Darwin', nodename='Shubham.local', release='17.2.0', version='Darwin Kernel Version 17.2.0: Fri Sep 29 18:27:05 PDT 2017; root:xnu-4570.20.62~3/RELEASE_X86_64', machine='x86_64')

정말로 자세히 설명되었습니다.

import os.path vs import os

os.path실제로는 이상하게 작동합니다. ospath와 함께 패키지화된 것처럼 보이지만 사실은 osos.path를 지원하기 위해 sys.module과 함께 작동하는 일반적인 모듈입니다. 아래에서 일어나는 일들을 나열해 보겠습니다:

  • Python이 시작되면 많은 모듈이 sys.module에 로드됩니다.
  • os 모듈도 Python이 시작될 때 로드됩니다. ospathos의 특정 모듈 속성에 할당합니다.
  • sys.modules['os.path'] = path를 주입하여 마치 서브모듈인 것처럼 import os.path를 수행할 수 있게 합니다.

요약

이 레슨에서는 Python의 OS 모듈이 제공하는 다양한 함수들과 그 작동 방식에 대해 알아보았습니다. Python 여기에서 더 많은 레슨을 참조하세요. 참고: API 문서

Source:
https://www.digitalocean.com/community/tutorials/python-os-module