일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 데이터구조
- 사이버보안
- 소프트웨어공학
- 네트워크보안
- 버전관리
- 빅데이터
- 자바스크립트
- 네트워크
- 프로그래밍언어
- 2
- 딥러닝
- 코딩
- Yes
- 데이터베이스
- 프로그래밍
- I'm Sorry
- 데이터과학
- 보안
- 클라우드컴퓨팅
- 컴퓨터비전
- 컴퓨터공학
- 머신러닝
- 알고리즘
- 데이터분석
- 컴퓨터과학
- 자료구조
- 인공지능
- 웹개발
- 소프트웨어
- 파이썬
- Today
- Total
스택큐힙리스트
안전하게 디렉토리를 생성하는 방법은 무엇인가요? (중간 디렉토리를 포함할 수도 있음) 본문
저는 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
안전하게 디렉토리를 만드는 방법에 대해 이야기해보겠습니다. 디렉토리를 만드는 것은 매우 중요한 일입니다. 잘못된 작업을 하면 시스템에 치명적인 영향을 미칠 수 있기 때문입니다. 이 메세지에서는 안전하게 디렉토리를 만드는 방법을 설명합니다.
먼저, 중첩 디렉토리를 만들 때 보안을 고려해야 합니다. 중첩 디렉토리는 여러 개의 하위 디렉토리를 포함하는 디렉토리입니다. 중첩 디렉토리를 만들 때 최상위 루트에 대한 권한이 필요합니다. 그런 다음 하위 디렉토리를 정확하게 생성해야 합니다. 이렇게 하면 권한이 있는 사용자가 디렉토리에 액세스할 수 있으며 데이터 유출의 위험성이 크게 감소합니다.
두 번째로, 시스템에 영향을 미치는 명령을 작성할 때 주의해야 합니다. 디렉토리를 만들 때 명령어 입력으로 시스템의 파일을 쉽게 삭제할 수 있습니다. 이렇게 되면 시스템의 파일이 손상될 수 있기 때문에 신중하게 작성해야 합니다.
마지막으로, 악성 코드 및 해킹을 방지하는 보안 프로그램을 설치해야 합니다. 이는 사용자의 시스템이 디렉토리를 만들 동안 수행되는 작업을 모니터링하여 악성 코드 및 해킹을 차단합니다.
따라서 안전하게 디렉토리를 만드는 방법은 너무나 간단합니다. 중요한 점은 보안이며, 명령어를 사용할 때 신중하게 작성하는 것입니다. 또한 보안 프로그램을 설치하여 악성 코드 및 해킹을 방지하는 것이 좋습니다. 이러한 작업을 통해 안전하게 디렉토리를 만들 수 있습니다.