Вы должны реализовать Parcelable interface .
Ссылка на документацию .
Получение названия файла без расширения:
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
См. другие ответы ниже, если необходимо обработать тот случай.
импортируйте имя файла OS, file_extension = os.path.splitext ('/d1/d2/example.cs') имя файла '/d1/d2/example' file_extension, .cs '
Но даже когда я импортирую OS, я не могу назвать ее path.basename. Действительно ли возможно назвать его так же непосредственно как базовое имя?
import os
, и затем используйте os.path.basename
import
луг os
не означает, что можно использовать os.foo
не относясь к os
.
Можно сделать собственное с:
>>> 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
Посмотрите ниже для других ответов тот адрес это.
Я думаю, что самый легкий путь состоит в том, чтобы использовать .split (" / ")
input= "PATH/TO/FILE/file.txt"
file_only = input.split("/")[-1]
print(file_only)
>>> file.txt
можно также сделать это для извлечения последней папки:
input= "PATH/TO/FOLDER"
folder_only = input.split("/")[-1]
print(folder_only)
>>> FOLDER
, Если Вы хотите предпоследнюю папку, просто изменитесь [-1] на [-2].
>>> print(os.path.splitext(os.path.basename("hemanth.txt"))[0])
hemanth