Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 파일 권한(모드)을 변경하는 방법 완벽 가이드

Python에서 파일 권한 변경하기

Python에서 파일의 권한(permission)을 변경하려면 os.chmod(file, mode) 함수를 사용하면 됩니다. 이때 mode 값은 반드시 8진수(octal)로 지정해야 하며, 숫자 앞에 0o 접두사를 붙여야 합니다.

os.chmod 기본 사용법

예를 들어 파일에 모든 사용자에게 읽기·쓰기·실행 권한을 부여하려면 권한을 0o777로 설정하면 됩니다:

>>> import os
>>> os.chmod('my_file', 0o777)

반대로 파일을 읽기 전용(read-only)으로 만들고 싶다면 소유자, 그룹, 기타 사용자 모두에게 읽기 권한만 부여하는 0o444를 사용하는 것이 올바른 방법입니다.

stat 모듈의 플래그 활용하기

8진수 대신 stat 모듈에서 제공하는 상수 플래그를 사용할 수도 있습니다. 예를 들어 stat.S_IREAD(읽기 권한), stat.S_IWRITE(쓰기 권한), stat.S_IEXEC(실행 권한) 등을 조합해 가독성 높은 코드를 작성할 수 있습니다.

>>> import os, stat
>>> os.chmod('my_file', stat.S_IREAD | stat.S_IWRITE)

각 플래그에 대한 자세한 내용은 Python 공식 문서(stat 모듈 문서)에서 확인할 수 있습니다.

subprocess로 chmod 명령어 실행하기

또 다른 방법은 subprocess 모듈을 사용해 시스템의 chmod 명령어를 직접 호출하는 것입니다. 단, 이 방법은 Unix/Linux 환경에서만 동작합니다:

>>> import subprocess
>>> subprocess.call(['chmod', '0444', 'my_file'])

정리

  • os.chmod(): 표준적이고 플랫폼 독립적인 방법 (권장)
  • stat 모듈 플래그: 코드 가독성을 높이고 싶을 때 유용
  • subprocess.call(): 시스템 명령어를 직접 활용하는 방식 (Unix 계열 전용)

대부분의 경우 이식성과 안정성이 좋은 os.chmod() 사용을 권장하며, mode 값을 지정할 때는 8진수 표기(0o 접두사)를 잊지 않도록 주의하세요.