스택큐힙리스트

안전하게 디렉토리를 생성하는 방법은 무엇인가요? (중간 디렉토리를 포함할 수도 있음) 본문

카테고리 없음

안전하게 디렉토리를 생성하는 방법은 무엇인가요? (중간 디렉토리를 포함할 수도 있음)

스택큐힙리스트 2023. 3. 21. 11:24
반응형

저는 Python을 사용하여 파일을 작성하고, 그것을 특정 경로에 두고 싶습니다. 어떻게 하면 경로가 존재하는지 안전하게 확인할 수 있을까요?

그것은: 그 폴더와 그 부모 폴더들이 존재하는지 어떻게 확인할 수 있을까요? 만약 경로상에 빠진 폴더가 있다면, 그것을 어떻게 생성할 수 있을까요?

답변 1

파이썬 ≥ 3.5에서는 pathlib.Path.mkdir을 사용하세요.

from pathlib import Path

Path(/my/directory).mkdir(parents=True, exist_ok=True)

Python의 이전 버전에 대해서는, 좋은 품질의 두 가지 답변을 볼 수 있습니다. 각각의 답변이 작은 결점이 있기 때문에, 제 생각을 제시하겠습니다:

os.path.exists를 시도하고, os.makedirs를 만들 때 고려해보세요.

import os

if not os.path.exists(directory):

os.makedirs(directory)

댓글 및 기타 곳에서 언급했듯이 경합 조건이 존재합니다. 디렉토리가 os.path.exists 및 os.makedirs 호출 사이에 생성되면, os.makedirs 은 OSError 로 실패합니다. 불행히도, OSError 을 가로채고 계속하는 것이 완벽하지 않습니다. 다른 요인(권한 부족, 디스크 가득 참 등)로 인해 디렉토리를 만들지 못하는 실패를 무시하게 됩니다.

하나의 선택은 OSError을/를 포획하고 내장된 오류 코드를 확인하는 것입니다(참조: Is there a cross-platform way of getting information from Python’s OSError).

import os, errno

try:

os.makedirs(directory)

except OSError as e:

if e.errno != errno.EEXIST:

raise

대안적으로, 두 번째 # $ # * @ & $ & $ & # 가 있을 수도 있지만, 첫 번째 확인 후 다른 사용자가 디렉토리를 만들고 두 번째 확인 전에 제거한 경우에도 우리는 속일 수 있습니다.

응용 프로그램에 따라 연속적인 작업의 위험이 파일 권한과 같은 다른 요소들보다 더 많을 수도 덜 할 수도 있습니다. 구현 방법을 선택하기 전에 개발자는 특정 응용 프로그램 및 예상 환경에 대해 더 많은 정보를 알아야 할 것입니다.

최신 버전의 Python은 이 코드를 상당히 개선시키며, 3.3 이후 버전에서는 FileExistsError을(를) 노출함으로써...

try:

os.makedirs(path/to/directory)

except FileExistsError:

# directory already exists

pass

...그리고 3.2+에서 a keyword argument to os.makedirs called exist_ok을(를) 허용함으로써.

os.makedirs(path/to/directory, exist_ok=True) # succeeds even if directory exists.

답변 2

안전하게 디렉토리를 만드는 방법에 대해 이야기해보겠습니다. 디렉토리를 만드는 것은 매우 중요한 일입니다. 잘못된 작업을 하면 시스템에 치명적인 영향을 미칠 수 있기 때문입니다. 이 메세지에서는 안전하게 디렉토리를 만드는 방법을 설명합니다.

먼저, 중첩 디렉토리를 만들 때 보안을 고려해야 합니다. 중첩 디렉토리는 여러 개의 하위 디렉토리를 포함하는 디렉토리입니다. 중첩 디렉토리를 만들 때 최상위 루트에 대한 권한이 필요합니다. 그런 다음 하위 디렉토리를 정확하게 생성해야 합니다. 이렇게 하면 권한이 있는 사용자가 디렉토리에 액세스할 수 있으며 데이터 유출의 위험성이 크게 감소합니다.

두 번째로, 시스템에 영향을 미치는 명령을 작성할 때 주의해야 합니다. 디렉토리를 만들 때 명령어 입력으로 시스템의 파일을 쉽게 삭제할 수 있습니다. 이렇게 되면 시스템의 파일이 손상될 수 있기 때문에 신중하게 작성해야 합니다.

마지막으로, 악성 코드 및 해킹을 방지하는 보안 프로그램을 설치해야 합니다. 이는 사용자의 시스템이 디렉토리를 만들 동안 수행되는 작업을 모니터링하여 악성 코드 및 해킹을 차단합니다.

따라서 안전하게 디렉토리를 만드는 방법은 너무나 간단합니다. 중요한 점은 보안이며, 명령어를 사용할 때 신중하게 작성하는 것입니다. 또한 보안 프로그램을 설치하여 악성 코드 및 해킹을 방지하는 것이 좋습니다. 이러한 작업을 통해 안전하게 디렉토리를 만들 수 있습니다.

반응형
Comments