programing

파이썬에서 파일 경로에서 폴더 경로를 추출하려면 어떻게 해야 합니까?

muds 2023. 6. 15. 22:07
반응형

파이썬에서 파일 경로에서 폴더 경로를 추출하려면 어떻게 해야 합니까?

전체 경로에서 파일로의 폴더 경로만 얻고 싶습니다.

예를들면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

반응형