반응형
파이썬에서 경로가 크로스 플랫폼 방식으로 절대 경로인지 상대 경로인지 확인하는 방법은 무엇입니까?
UNIX 절대 경로는 '/'로 시작하는 반면 Windows는 알파벳 'C :'또는 '\'로 시작합니다. 파이썬에는 경로가 절대 또는 상대인지 확인하는 표준 기능이 있습니까?
os.path.isabs
True
경로가 절대 경로가 False
아닌 경우 반환 합니다 . 설명서 에는 Windows에서 작동한다고 나와 있습니다 (Linux에서 개인적으로 작동한다는 것을 확인할 수 있습니다).
os.path.isabs(my_path)
그리고 당신이 정말로 원하는 것이 절대 경로라면, 그것이 있는지 확인하기 위해 귀찮게하지 마십시오 abspath
.
import os
print os.path.abspath('.')
사용하십시오 os.path.isabs
.
import os.path
os.path.isabs('/home/user')
True
os.path.isabs('user')
False
실제로 위의 답변 중 어느 것도 실제 문제를 해결하지 못했다고 생각합니다 : 크로스 플랫폼 경로. os.path가하는 일은 'path'라이브러리의 OS 종속 버전을로드하는 것입니다. 솔루션은 관련 (OS) 경로 라이브러리를 명시 적으로로드하는 것입니다.
import ntpath
import posixpath
ntpath.isabs("Z:/a/b/c../../H/I/J.txt")
True
posixpath.isabs("Z:/a/b/c../../H/I/J.txt")
False
os.path
모듈은 당신이 필요로하는 모든 것을해야합니다.
다른 방법으로 현재 작업 디렉토리에 없으면 더러워 지지만 그것은 나를 위해 작동합니다.
import re
path = 'my/relative/path'
# path = '..my/relative/path'
# path = './my/relative/path'
pattern = r'([a-zA-Z0-9]|[.])+/'
is_ralative = bool(pattern)
반응형
'Programing' 카테고리의 다른 글
정수 리터럴을 (int)로 캐스팅 해야하는 이유는 무엇입니까? (0) | 2020.07.11 |
---|---|
Django : 템플릿 내에서 세션 변수에 액세스하십니까? (0) | 2020.07.11 |
Content-Type 헤더에 관계없이 Python Flask에서 원시 POST 본문 가져 오기 (0) | 2020.07.11 |
Sublime Text와 같이 PyCharm에서 선택한 텍스트를 둘러싸는 방법 (0) | 2020.07.11 |
ProgressBar / ProgressDialog에 대한 사용자 정의 드로어 블 (0) | 2020.07.11 |