[python] 파이썬의 경로에서 확장자가없는 파일 이름을 얻는 방법은 무엇입니까?

파이썬의 경로에서 확장자가없는 파일 이름을 얻는 방법은 무엇입니까?



답변

확장자가없는 파일 이름 얻기 :

import os
print(os.path.splitext("/path/to/some/file.txt")[0])

인쇄물:

/path/to/some/file

에 대한 설명서os.path.splitext .

중요 참고 : 파일 이름에 여러 개의 점이있는 경우 마지막 점 이후의 확장자 만 제거됩니다. 예를 들면 다음과 같습니다.

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

이를 해결하는 다른 답변은 아래를 참조하십시오.


답변

pathlibPython 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