file类用什么判断是否是目录(文件路径名Pathnames的操作)

使用路径名来获取文件名,目录名,绝对路径等等,下面我们就来聊聊关于file类用什么判断是否是目录?接下来我们就一起去了解一下吧!

file类用什么判断是否是目录(文件路径名Pathnames的操作)

file类用什么判断是否是目录

1. 现象问题

使用路径名来获取文件名,目录名,绝对路径等等

2. 原因分析
3. 问题解决

使用 os.path 模块中的函数来操作路径名

import os.path # 查看标准化的绝对路径 print(os.path.abspath('./chapter2/py20210224.py')) # 'E:\\code\\PythonCookBook\\chapter2\\py20210224.py' # 返回路径中的最后一个模块 print(os.path.basename('./chapter2/py20210224.py')) # 'py20210224.py' # 返回路径列表中最长的相同子路径sub-path 不会校验路径的有效性 # 不能同时使用绝对路径和相对路径 # 空 print(os.path.commonpath(['./chapter2/py20210224.py', './chapter3/py20210310.py', './chapter3/py20210312.py', ])) # 'chapter3' print(os.path.commonpath(['./chapter3/py20210310.py', './chapter3/py20210312.py', ])) # os.path.dirname 返回路径目录名称 # './chapter3' print(os.path.dirname('./chapter3/py20210312.py')) # './chapter3' print(os.path.dirname('./chapter3/')) # '.' print(os.path.dirname('./chapter3')) # os.path.normpath 转换path字符串形式 # 将多余的分隔符 相对路径.(上级目录)去除 # 'chapter3\py20210312.py' print(os.path.normpath('./chapter3/py20210312.py')) # 'chapter3\py20210312.py' print(os.path.normpath('.//chapter3/chapter4/../py20210312.py') # os.path.normcase 转换path的大小写和斜杠 # '.\chapter3\py20210312.py' print(os.path.normcase('./chapter3/py20210312.py')) # '.\chapter3\..\chapter4\py20210312.py' print(os.path.normcase('./chapter3/../chapter4/py20210312.py')) # os.path.join 将路径模块智能组合在一起 # 'tmp\data\chapter3\py20210312.py' print(os.path.join('tmp', 'data', os.path.normcase(os.path.normpath('./chapter3/py20210312.py'))))

对于任何的文件名的操作,你都应该使用 os.path 模块,而不是使用标准字符串操作来构造自己的代码。

为了可移植性考虑的时候更应如此,因为 os.path 模块知道 Unix 和 Windows 系统之间的差异并且能够可靠地处理类似

为了不浪费时间去重复造轮子,建议先浏览官方更多os.path函数,确认是否已经实现此功能

4. 错误经历
,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页