programing

파이썬으로 경로 이름만 얻는 방법?

padding 2023. 10. 10. 20:09
반응형

파이썬으로 경로 이름만 얻는 방법?

다음 문자열이 있습니다.

a = "/home/user/Downloads/repo/test.txt"

나의 목표는 오직 를 포함하는 문자열을 만드는 것입니다.test, 어떻게 해야하죠?

정말로.a출신이다

f = tkFileDialog.asksaveasfile(mode='w', defaultextension=".txt")

그리고.a와 같음a = f.name

하지만 난 깨달았어요.f.name파일 이름만 알려주지는 않습니다.

Python 3.4+에서는 Python의 표준 라이브러리에 포함된 모듈을 사용할 수 있습니다.

>>> from pathlib import Path
>>> p = Path("/home/user/Downloads/repo/test.txt")
>>> print(p.stem)
test
>>> print(p.name)
test.txt

모듈을 사용하여 경로 작업을 수행합니다. 함수는 마지막 경로 구분자 다음에 마지막 부분을 제공하고 확장자가 분할된 파일 이름을 제공합니다.

import os.path

basename = os.path.splitext(os.path.basename(f.name))[0]

사용.os.path함수를 사용하면 경로 구분자가 다르더라도 코드가 다른 운영 체제에서 계속 올바르게 작동할 수 있습니다.

Python 3.4 이상(또는 별도의 백포트 설치)에서는 라이브러리를 사용할 수도 있는데, 이 라이브러리는 경로 처리에 대한 객체 지향적 접근 방식을 제공합니다.pathlib.Path()개체에는 확장 접미사가 없는 최종 구성 요소인 속성이 있습니다.

try:
    import pathlib
except ImportError:
    # older Python version, import the backport instead
    import pathlib2 as pathlib

basename = pathlib.Path(f.name).stem

데모:

>>> import os.path
>>> a = "/home/user/Downloads/repo/test.txt"
>>> os.path.basename(a)
'test.txt'
>>> os.path.splitext(os.path.basename(a))
('test', '.txt')
>>> os.path.splitext(os.path.basename(a))[0]
'test'
>>> import pathlib
>>> pathlib.Path(a)
PosixPath('/home/user/Downloads/repo/test.txt')
>>> pathlib.Path(a).stem
'test'

당신은 그들 중 한 명을os.path.basename아니면os.path.splitext:

>>> import os.path
>>> os.path.basename("/var/log/err.log")
'err.log'
>>> os.path.splitext(os.path.basename("/var/log/err.log"))
('err', '.log')
>>> os.path.splitext(os.path.basename("/var/log/err.log"))[0]
'err'
>>>

언급URL : https://stackoverflow.com/questions/50876840/how-to-get-only-the-name-of-the-path-with-python

반응형