栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python-无论OS /路径格式如何,都从路径中提取文件名

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python-无论OS /路径格式如何,都从路径中提取文件名

使用

os.path.split
os.path.basename
建议使用并非在所有情况下都可行:如果你在Linux上运行脚本并尝试处理经典的Windows样式路径,它将失败。

Windows路径可以使用反斜杠或正斜杠作为路径分隔符。因此,该

ntpath
模块(在Windows上运行时等效于
os.path
)将适用于所有平台上的所有(1)路径。

import ntpathntpath.basename("a/b/c")

当然,如果文件以斜杠结尾,则基名将为空,因此请使用你自己的函数来处理它:

def path_leaf(path):    head, tail = ntpath.split(path)    return tail or ntpath.basename(head)

验证:

>>> paths = ['a/b/c/', 'a/b/c', '\a\b\c', '\a\b\c\', 'a\b\c', ...     'a/b/../../a/b/c/', 'a/b/../../a/b/c']>>> [path_leaf(path) for path in paths]['c', 'c', 'c', 'c', 'c', 'c', 'c']

(1)有一个警告:Linux文件名可能包含反斜杠。因此,在Linux上,

r'a/bc'
始终引用文件夹
bc
中的a文件,而在Windows上,始终引用c文件b夹的子文件夹中的a文件。因此,在路径中同时使用正斜杠和反斜杠时,你需要了解关联的平台才能正确解释它。实际上,通常可以安全地假设它是Windows路径,因为Linux文件名中很少使用反斜杠,但是在编写代码时请记住这一点,以免造成意外的安全漏洞。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614538.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号