파이썬에서 파일 경로에서 폴더 경로를 추출하려면 어떻게 해야 합니까?
전체 경로에서 파일로의 폴더 경로만 얻고 싶습니다.
예를들면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')
PATHLIB 모듈 포함(업데이트된 답변)
새로운 개발을 위해 pathlib을 사용하는 것을 고려해야 합니다.Python 3.4의 경우 stdlib에 있지만 이전 버전의 경우 PyPI에서 사용할 수 있습니다.이 라이브러리는 경로를 조작할 수 있는 보다 객체 지향적인 메서드를 제공합니다.<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 모듈 포함
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
그렇지 않은 경우에도 이 모듈을 구성 요소로 사용해야 합니다.
기본 제공 서브모듈 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
다음은 파일, 경로 토큰에서 경로를 분할하는 작은 유틸리티 도우미입니다.
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 Table 필드 계산기 인터페이스에서 이 작업을 수행하려는 사용자는 Python 파서를 사용하여 다음 작업을 수행할 수 있습니다.
= 폴더를 포함하는 경로
"\\".join(!FullFilePathWithFileName!.split("\\")[0:-1])
하도록
\Users\me\데스크탑\새 폴더\file.txt
된다
\Users\me\데스크탑\새 폴더
현재 작업 디렉토리를 폴더로 변경하는 데 사용합니다.
from os import chdir
from os.path import realpath
from os.path import dirname
chdir(realpath(dirname(argv[0])))
- chdir는 작업 디렉토리를 변경합니다.이것이 필요할 것 같지 않습니다.
- 실제 경로는 심볼 링크를 따릅니다.
- dirname은 경로만 반환합니다.
- argv는 프로그램을 실행하는 데 사용되는 명령줄입니다.
언급URL : https://stackoverflow.com/questions/17057544/how-can-i-extract-the-folder-path-from-file-path-in-python
'programing' 카테고리의 다른 글
현재 컨텍스트에 이름이 없습니다. (0) | 2023.06.15 |
---|---|
매트랩 코더 대 핸드 코딩? (0) | 2023.06.15 |
data.table 열 순서 변경 방법(복사하지 않음) (0) | 2023.06.15 |
Nokogiri 설치 실패 -libxml2가 누락되었습니다. (0) | 2023.06.15 |
Excel 파일에서 Apache POI XSSF 읽기 (0) | 2023.06.15 |