파이썬의 경로에서 확장자가없는 파일 이름을 얻는 방법은 무엇입니까?
답변
확장자가없는 파일 이름 얻기 :
import os
print(os.path.splitext("/path/to/some/file.txt")[0])
인쇄물:
/path/to/some/file
중요 참고 : 파일 이름에 여러 개의 점이있는 경우 마지막 점 이후의 확장자 만 제거됩니다. 예를 들면 다음과 같습니다.
import os
print(os.path.splitext("/path/to/some/file.txt.zip.asc")[0])
인쇄물:
/path/to/some/file.txt.zip
해당 사례를 처리해야하는 경우 아래의 다른 답변을 참조하십시오.
답변
당신은 자신을 만들 수 있습니다 :
>>> import os
>>> base=os.path.basename('/root/dir/sub/file.ext')
>>> base
'file.ext'
>>> os.path.splitext(base)
('file', '.ext')
>>> os.path.splitext(base)[0]
'file'
중요 사항 : .
파일 이름에 둘 이상이 있으면 마지막 파일 만 제거됩니다. 예를 들면 다음과 같습니다.
/root/dir/sub/file.ext.zip -> file.ext
/root/dir/sub/file.ext.tar.gz -> file.ext.tar
이를 해결하는 다른 답변은 아래를 참조하십시오.
답변
pathlib
Python 3.4 이상에서 사용
from pathlib import Path
Path('/root/dir/sub/file.ext').stem
돌아올 것이다
'file'
답변
>>> print(os.path.splitext(os.path.basename("hemanth.txt"))[0])
hemanth
답변
Python 3.4 이상에서는 pathlib
솔루션을 사용할 수 있습니다
from pathlib import Path
print(Path(your_path).resolve().stem)
답변
https://docs.python.org/3/library/os.path.html
파이썬 3에서 pathlib “pathlib 모듈은 높은 수준의 경로 객체를 제공합니다.” 그래서,
>>> from pathlib import Path
>>> p = Path("/a/b/c.txt")
>>> print(p.with_suffix(''))
\a\b\c
>>> print(p.stem)
c
답변
파일 경로를 유지하고 확장명을 제거하려면
>>> file = '/root/dir/sub.exten/file.data.1.2.dat'
>>> print ('.').join(file.split('.')[:-1])
/root/dir/sub.exten/file.data.1.2