python - 从文件路径仅获取文件名(不带扩展名和目录)

标签 python operating-system filenames filepath

我有:

import os
import ntpath

def fetch_name(filepath):
    return os.path.splitext(ntpath.basename(filepath))[0]

a = u'E:\That is some string over here\news_20.03_07.30_10 .m2t'
b = u'E:\And here is some string too\Logo_TimeBuffer.m2t.mpg'

fetch_name(a)
>>u'That is some string over here\news_20.03_07.30_10 ' # wrong!
fetch_name(b)
>>u'Logo_TimeBuffer.m2t' # wrong!

我需要什么:

fetch_name(a)
>>u'news_20.03_07.30_10 '
fetch_name(b)
>>u'Logo_TimeBuffer'

最佳答案

您的代码完全按照其应有的方式工作。在示例 a 中,\n 不被视为反斜杠字符,因为它是换行符。在示例 b 中,扩展名是 .mpg,已正确删除。一个文件不能有多个扩展名,或者扩展名包含句点。

要仅获取第一个周期之前的位,您可以使用 ntpath.basename(filepath).split('.')[0] ,但这可能不是您想要的,因为文件名包含句点是完全合法的。

关于python - 从文件路径仅获取文件名(不带扩展名和目录),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23213850/

相关文章:

php - 无法在我的 PHP 应用程序中包含名为 "config.php"的文件(它会被忽略)

python - 无法在 virtualenv 中导入 beautifulsoup4

python - 递归地使用 Sphinx autosummary 生成 API 文档

python - 让一个条目影响另一个条目的值,反之亦然

c - 在 freebsd 中编写我的第一个系统调用(用于学习内核开发)

vb.net - 从正在运行的进程中提取文件名和路径

linux - 如何将文件名解析为时间戳?

python - python 日期时间中的闰年约定

c - Linux 中的 fork() 系统调用

c - 使用 C [Linux, portable for distros : Centos, Debian, Fedora, OpenSUSE, RedHat, Ubuntu] 获取操作系统名称