Python의 파일 경로에서 폴더 경로를 어떻게 추출 할 수 있습니까?
전체 경로에서 파일로의 폴더 경로 만 얻고 싶습니다.
예를 들어 T:\Data\DBDesign\DBDesign_93_v141b.mdb
, 나는 T:\Data\DBDesign
(제외 \DBDesign_93_v141b.mdb
) 를 얻고 싶습니다 .
나는 다음과 같은 것을 시도했다.
existGDBPath = r'T:\Data\DBDesign\DBDesign_93_v141b.mdb'
wkspFldr = str(existGDBPath.split('\\')[0:-1])
print wkspFldr
하지만 다음과 같은 결과를 얻었습니다.
['T:', 'Data', 'DBDesign']
그것은 내가 요구하는 결과가 아닙니다 T:\Data\DBDesign
.
내 파일의 경로를 얻는 방법에 대한 아이디어가 있습니까?
split
함수 사용은 거의 완료되었습니다 . 다음과 같이 문자열을 연결하면됩니다.
>>> import os
>>> '\\'.join(existGDBPath.split('\\')[0:-1])
'T:\\Data\\DBDesign'
os.path.dirname
이 작업을 수행 하는 데 함수를 사용하는 것이 좋지만 문자열을 전달하면 작업을 수행 할 수 있습니다. 당신이 창문에있는 것 같기 때문에, abspath
함수를 사용하는 것을 고려하십시오 . 예 :
>>> import os
>>> os.path.dirname(os.path.abspath(existGDBPath))
'T:\\Data\\DBDesign'
분할 후 파일 이름과 디렉토리 경로를 모두 원할 경우 os.path.split
다음과 같이 튜플을 반환하는 함수를 사용할 수 있습니다 .
>>> import os
>>> os.path.split(os.path.abspath(existGDBPath))
('T:\\Data\\DBDesign', 'DBDesign_93_v141b.mdb')
os.path 모듈을 사용하십시오 :
>>> import os
>>> existGDBPath = r'T:\Data\DBDesign\DBDesign_93_v141b.mdb'
>>> wkspFldr = os.path.dirname(existGDBPath)
>>> print wkspFldr
'T:\Data\DBDesign'
계속 진행하여 일종의 파일 이름 조작을 수행해야하는 경우 이미 os.path
. 그렇지 않은 경우에도이 모듈을 빌딩 블록으로 사용해야합니다.
최신 정보
새로운 개발을 위해 pathlib 사용을 고려해야 합니다. Python3.4 용 stdlib에 있지만 이전 버전의 경우 PyPI 에서 사용할 수 있습니다. 이 라이브러리는 경로를 조작 할 수있는 더 객체 orented 방법을 제공 <opinion>
하고 훨씬 쉽게 읽기 및 프로그램입니다 </opinion>
.
>>> import pathlib
>>> existGDBPath = pathlib.Path(r'T:\Data\DBDesign\DBDesign_93_v141b.mdb')
>>> wkspFldr = existGDBPath.parent
>>> print wkspFldr
Path('T:\Data\DBDesign')
내장 서브 모듈 os.path 에는 바로 그 작업을위한 기능이 있습니다.
import os
os.path.dirname('T:\Data\DBDesign\DBDesign_93_v141b.mdb')
다음은 코드입니다.
import os
existGDBPath = r'T:\Data\DBDesign\DBDesign_93_v141b.mdb'
wkspFldr = os.path.dirname(existGDBPath)
print wkspFldr # T:\Data\DBDesign
다음은 경로 int 파일, 경로 토큰 분할을위한 작은 유틸리티 도우미입니다.
import os
# usage: file, path = splitPath(s)
def splitPath(s):
f = os.path.basename(s)
p = s[:-(len(f))-1]
return f, p
ESRI GIS 테이블 필드 계산기 인터페이스에서이 작업을 수행하려는 사람은 누구나 Python 파서 로이 작업을 수행 할 수 있습니다 .
PathToContainingFolder =
"\\".join(!FullFilePathWithFileName!.split("\\")[0:-1])
그래서
\ Users \ me \ Desktop \ 새 폴더 \ file.txt
된다
\ Users \ me \ Desktop \ New 폴더
'Programing' 카테고리의 다른 글
Scala 코드가 더 단순 해 보이거나 줄이 더 적은 Scala 및 Java 코드 샘플? (0) | 2020.09.02 |
---|---|
C의 매크로 대 기능 (0) | 2020.09.02 |
Composer PHP 요구 사항 건너 뛰기 (0) | 2020.09.02 |
rails는 yield : area가 content_for에 정의되어 있는지 확인합니다. (0) | 2020.09.02 |
디렉터리 구조를 복사하지만 특정 파일 만 포함하는 방법 (Windows 배치 파일 사용) (0) | 2020.09.02 |