目录
python os.path模块学习
引言
python 的os.path模块,实现了对文件路径的操作。使用时,可以import os 或者import os.path。今天学习了python的os.path标准库 文件目录和访问 ,整理了较为常用的路径操作函数。
常用函数
路径分割、扩展名和路径拼接函数
os.path.split(path), 将路径 path 拆分为一对,即(head, tail),其中,tail 是路径的最后一部分,而 head 里是除最后部分外的所有内容。tail 部分不会包含斜杠,如果 path 以斜杠结尾,则 tail 将为空。如果 path 中没有斜杠,head 将为空。如果 path 为空,则 head 和 tail 均为空。head 末尾的斜杠会被去掉,除非它是根目录(即它仅包含一个或多个斜杠)。在所有情况下,join(head, tail)指向的位置都与 path 相同(但字符串可能不同)。os.path.splitext(path), 将路径 path 拆分为一对,即(root, ext),使root + ext == path,其中 ext 为空或以英文句点开头,且最多包含一个句点。路径前的句点将被忽略,例如splitext('.cshrc')返回('.cshrc', '')os.path.join(path, *paths), 合理地拼接一个或多个路径部分。返回值是 path 和 **paths* 所有值的连接,每个非空部分后面都紧跟一个目录分隔符 (os.sep),除了最后一部分。这意味着如果最后一部分为空,则结果将以分隔符结尾。如果参数中某个部分是绝对路径,则绝对路径前的路径都将被丢弃,并从绝对路径部分开始连接。
返回路径的路径名称或文件名称
os.path.dirname(path), 返回路径 path 的目录名称。这是将 path 传入函数split()之后,返回的一对值中的第一个元素os.path.basename(path), 返回路径 path 的基本名称。这是将 path 传入函数split()之后,返回的一对值中的第二个元素。
获得不同路径的最长公共子路径
os.path.commonpath, 接受包含多个路径的序列 paths,返回 paths 的最长公共子路径。如果 paths 同时包含绝对路径和相对路径,或 paths 在不同的驱动器上,或 paths 为空,则抛出ValueError异常。与commonprefix()不同,本方法返回有效路径。os.path.commonprefix, 接受包含多个路径的 列表,返回所有路径的最长公共前缀(逐字符比较)。如果 列表 为空,则返回空字符串 ('')。注意,此函数是逐字符比较,因此可能返回无效路径。
规范路径的大小写或重复的分隔符
os.path.normcase(path), 规范路径的大小写。在 Windows 上,将路径中的所有字符都转换为小写,并将正斜杠转换为反斜杠。在其他操作系统上返回原路径。os.path.normpath(path), 通过折叠多余的分隔符和对上级目录的引用来标准化路径名,所以A//B、A/B/、A/./B和A/foo/../B都会转换成A/B。这个字符串操作可能会改变带有符号链接的路径的含义。在 Windows 上,本方法将正斜杠转换为反斜杠。
获取路径操作时间及路径中文件大小
os.path.getatime(path),返回 path 的最后访问时间。返回值是一个浮点数,为纪元秒数(参见time)。如果该文件不存在或不可访问,则抛出OSError异常。os.path.getmtime(path), 返回 path 的最后修改时间。返回值是一个浮点数,为纪元秒数(参见time模块)。如果该文件不存在或不可访问,则抛出OSError异常。os.path.getctime(path), 返回 path 在系统中的 ctime,在有些系统(比如 Unix)上,它是元数据的最后修改时间,其他系统(比如 Windows)上,它是 path 的创建时间。返回值是一个数,为纪元秒数(参见time模块)。如果该文件不存在或不可访问,则抛出OSError异常。os.path.getsize(path), 返回 path 的大小,以字节为单位。如果该文件不存在或不可访问,则抛出OSError异常。
路径判断的相关函数
os.path.exists(path), 如果 path 指向一个已存在的路径或已打开的文件描述符,返回True。对于失效的符号链接,返回False。os.path.isfile(path), 如果 path 是常规文件,则返回True。os.path.isdir(path), 如果 path 是常规目录,则返回True。os.path.isabs(path), 如果 path 是一个绝对路径,则返回True。在 Unix 上,它就是以斜杠开头,而在 Windows 上,它可以是去掉驱动器号后以斜杠(或反斜杠)开头。os.path.samefile(path1, path2), 如果两个路径都指向相同的文件或目录,则返回True。os.path.sameopenfile(fp1, fp2), 如果文件描述符 fp1 和 fp2 指向相同文件,则返回True。适用于unix和windows。
操作路径的绝对路径和相对路径
os.path.abspath(path), 返回路径 path 的绝对路径(标准化的)。os.path.realpath(path),返回指定文件的规范路径,消除路径中存在的任何符号链接(如果操作系统支持)。os.path.relpath(path, start=os.curdir),返回从当前目录或 start 目录(可选)到达 path 之间要经过的相对路径。这仅仅是对路径的计算,不会访问文件系统来确认 path 或 start 的存在性或属性。
来源:https://www.cnblogs.com/songbiao/p/12447435.html