반응형
파이썬으로 경로 이름만 얻는 방법?
다음 문자열이 있습니다.
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
반응형
'programing' 카테고리의 다른 글
SYS_CONTEXT/USERENV에서 모든 파라미터 읽기 (0) | 2023.10.10 |
---|---|
XML 스키마 열거형으로 속성을 제한하는 방법 (0) | 2023.10.10 |
log2가 내 수학에서 발견되지않았습니까? (0) | 2023.10.10 |
동적으로 작성된 필드에서 JQuery Datepicker 사용 (0) | 2023.10.10 |
텍스트 문자열을 $first와 $last name(php)으로 나눕니다. (0) | 2023.10.10 |