当前位置:   article > 正文

python --os模块_判断一个路径是否在树结构

判断一个路径是否在树结构

文件路径分割

常用分割(分隔路径,找出文件名.找出盘符(windows系统),找出文件的扩展名)

分割文件或文件夹

import os

a = '/mnt/d/test/red-resource-server/red_external/red_server'
b = '/mnt/d/test/red-resource-server/red_external/red_server/1.jpg'

# 由此得出函数根据'/'分割,取最后一位
print(os.path.split(a))
print(os.path.split(b))

输出:
('/mnt/d/test/red-resource-server/red_external', 'red_server')
('/mnt/d/test/red-resource-server/red_external/red_server', '1.jpg')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

找文件盘符(仅windows有效)

import os
a = '/mnt/d/test/red-resource-server/red_external/red_server'    # 这种路径拿不到
b = 'C:\Intel'

print(os.path.splitdrive(a))
print(os.path.splitdrive(b))

输出:
('', '/mnt/d/test/red-resource-server/red_external/red_server')
('C:', '\\Intel')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

找文件扩展名

import os
a = '/mnt/d/test/red-resource-server/red_external/red_server/1.jpg'
print(os.path.splitext(a))

输出:
('/mnt/d/test/red-resource-server/red_external/red_server/1', '.jpg')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

详解

在这里插入图片描述
常用

语法含义
os.getcwd()获取当前的工作路径
os.listdir(path)传入任意一个path路径,返回的是该路径下所有文件和目录组成的列表
os.walk(path)传入任意一个path路径,深层次遍历指定路径下的所有子文件夹,返回的是一个由路径、文件夹列表、文件列表组成的元组
os.mkdir(path)传入一个path路径,创建单层(单个)文件夹;
os.makedirs(path)传入一个path路径,生成一个递归的文件夹
os.rmdir(path)传入一个path路径,删除指定路径下的文件夹;注意:该方法只能删除空文件夹,删除非空文件夹会报错;
os.path.sep返回当前操作系统的路径分隔符;
os.path.abspath(path)返回一个标准的绝对路径的路径名
os.path.basename(path)返回文件名
os.path.commonprefix(list)返回list(多个路径)中,所有path共有的最长的路径(多个路径的公共部分)
os.path.dirname(path)返回文件路径
os.path.exists(path)如果路径 path 存在,返回 True;如果路径 path 不存在,返回 False。
os.path.lexists路径存在则返回True,路径损坏也返回True
os.path.expanduser(path)把path中包含的""和"user"转换成用户目录
os.path.getatime(path)返回最近访问时间(浮点型秒数)
os.path.getmtime(path)返回最近文件修改时间
os.path.getctime(path)返回文件 path 创建时间
os.path.getsize(path)返回文件大小,如果文件不存在就返回错误
os.path.isabs(path)判断是否为绝对路径
os.path.isfile(path)判断路径是否为文件
os.path.isdir(path)判断路径是否为目录
os.path.islink(path)判断路径是否为链接
os.path.ismount(path)判断路径是否为挂载点
os.path.join(path1[, path2[, …]])把目录和文件名合成一个路径
os.path.normcase(path)转换path的大小写和斜杠
os.path.normpath(path)规范path字符串形式
os.path.realpath(path)返回path的真实路径
os.path.relpath(path[, start])从start开始计算相对路径
os.path.samefile(path1, path2)判断目录或文件是否相同
os.path.sameopenfile(fp1, fp2)判断fp1和fp2是否指向同一文件
os.path.samestat(stat1, stat2)判断stat tuple stat1和stat2是否指向同一个文件
os.path.split(path)把路径分割成 dirname 和 basename,返回一个元组
os.path.splitdrive(path)一般用在 windows 下,返回驱动器名和路径组成的元组
os.path.splitext(path)分割路径,返回路径名和文件扩展名的元组
os.path.splitunc(path)把路径分割为加载点与文件
os.path.walk(path, visit, arg)遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数
os.path.supports_unicode_filenames设置是否支持unicode路径名

非常用

  • 检验权限模式

      os.access(path, mode)
    
    • 1
  • 改变当前工作目录

      os.chdir(path)
    
    • 1
  • 设置路径的标记为数字标记。

      os.chmod(path, mode)
    
    • 1
  • 更改文件所有者

      os.chown(path, uid, gid)
    
    • 1
  • 改变当前进程的根目录

      os.chroot(path)
    
    • 1
  • 关闭文件描述符 fd

      os.close(fd)
    
    • 1
  • 关闭所有文件描述符,从 fd_low (包含) 到 fd_high (不包含), 错误会忽略

      os.closerange(fd_low, fd_high)
    
    • 1
  • 复制文件描述符 fd

      os.dup(fd)
    
    • 1
  • 将一个文件描述符 fd 复制到另一个 fd2

      os.dup2(fd, fd2)
    
    • 1
  • 通过文件描述符改变当前工作目录

      os.fchdir(fd)
    
    • 1
  • 改变一个文件的访问权限,该文件由参数fd指定,参数mode是Unix下的文件访问权限。

      os.fchmod(fd, mode)
    
    • 1
  • 修改一个文件的所有权,这个函数修改一个文件的用户ID和用户组ID,该文件由文件描述符fd指定。

      os.fchown(fd, uid, gid)
    
    • 1
  • 强制将文件写入磁盘,该文件由文件描述符fd指定,但是不强制更新文件的状态信息。

      os.fdatasync(fd)
    
    • 1
  • 通过文件描述符 fd 创建一个文件对象,并返回这个文件对象

      os.fdopen(fd[, mode[, bufsize]])
    
    • 1
  • 返回一个打开的文件的系统配置信息。name为检索的系统配置的值,它也许是一个定义系统值的字符串,这些名字在很多标准中指定(POSIX.1, Unix 95, Unix 98, 和其它)。

      os.fpathconf(fd, name)
    
    • 1
  • 返回文件描述符fd的状态,像stat()。

      os.fstat(fd)
    
    • 1
  • 返回包含文件描述符fd的文件的文件系统的信息,Python 3.3 相等于 statvfs()。

      os.fstatvfs(fd)
    
    • 1
  • 强制将文件描述符为fd的文件写入硬盘。

      os.fsync(fd)
    
    • 1
  • 裁剪文件描述符fd对应的文件, 所以它最大不能超过文件大小。

      os.ftruncate(fd, length)
    
    • 1
  • 返回一个当前工作目录的Unicode对象

      os.getcwdb()
    
    • 1
  • 如果文件描述符fd是打开的,同时与tty(-like)设备相连,则返回true, 否则False。

      os.isatty(fd)
    
    • 1
  • 设置路径的标记为数字标记,类似 chflags(),但是没有软链接

      os.lchflags(path, flags)
    
    • 1
  • 修改连接文件权限

      os.lchmod(path, mode)
    
    • 1
  • 更改文件所有者,类似 chown,但是不追踪链接。

      os.lchown(path, uid, gid)
    
    • 1
  • 创建硬链接,名为参数 dst,指向参数 src

      os.link(src, dst)
    
    • 1
  • 设置文件描述符 fd当前位置为pos, how方式修改: SEEK_SET 或者 0 设置从文件开始的计算的pos; SEEK_CUR或者 1 则从当前位置计算; os.SEEK_END或者2则从文件尾部开始. 在unix,Windows中有效

      os.lseek(fd, pos, how)
    
    • 1
  • 像stat(),但是没有软链接

      os.lstat(path)
    
    • 1
  • 从原始的设备号中提取设备major号码 (使用stat中的st_dev或者st_rdev field)。

      os.major(device)
    
    • 1
  • 以major和minor设备号组成一个原始设备号

      os.makedirs(path[, mode])
    
    • 1
  • 从原始的设备号中提取设备minor号码 (使用stat中的st_dev或者st_rdev field )。

      os.minor(device)
    
    • 1
  • 创建命名管道,mode 为数字,默认为 0666 (八进制)

      os.mkfifo(path[, mode])
    
    • 1
  • 创建一个名为filename文件系统节点(文件,设备特别文件或者命名pipe)。

      os.mknod(filename[, mode=0600, device])
    
    • 1
  • 打开一个文件,并且设置需要的打开选项,mode参数是可选的

      os.open(file, flags[, mode])
    
    • 1
  • 打开一个新的伪终端对。返回 pty 和 tty的文件描述符。

      os.openpty()
    
    • 1
  • 返回相关文件的系统配置信息。

      os.pathconf(path, name)
    
    • 1
  • 创建一个管道. 返回一对文件描述符(r, w) 分别为读和写

      os.pipe()
    
    • 1
  • 从一个 command 打开一个管道

      os.popen(command[, mode[, bufsize]])
    
    • 1
  • 从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串。

      os.read(fd, n)
    
    • 1
  • 返回软链接所指向的文件

      os.readlink(path)
    
    • 1
  • 删除路径为path的文件。如果path 是一个文件夹,将抛出OSError; 查看下面的rmdir()删除一个 directory。

      os.remove(path)
    
    • 1
  • 递归删除目录。

      os.removedirs(path)
    
    • 1
  • 重命名文件或目录,从 src 到 dst

      os.rename(src, dst)
    
    • 1
  • 递归地对目录进行更名,也可以对文件进行更名。

      os.renames(old, new)
    
    • 1
  • 删除path指定的空目录,如果目录非空,则抛出一个OSError异常。

      os.rmdir(path)
    
    • 1
  • 获取path指定的路径的信息,功能等同于C API中的stat()系统调用。

      os.stat(path)
    
    • 1
  • 决定stat_result是否以float对象显示时间戳

      os.stat_float_times([newvalue])
    
    • 1
  • 获取指定路径的文件系统统计信息

      os.statvfs(path)
    
    • 1
  • 创建一个软链接

      os.symlink(src, dst)
    
    • 1
  • 返回与终端fd(一个由os.open()返回的打开的文件描述符)关联的进程组

      os.tcgetpgrp(fd)
    
    • 1
  • 设置与终端fd(一个由os.open()返回的打开的文件描述符)关联的进程组为pg。

      os.tcsetpgrp(fd, pg)
    
    • 1
  • 返回一个字符串,它表示与文件描述符fd 关联的终端设备。如果fd 没有与终端设备关联,则引发一个异常。

      os.ttyname(fd)
    
    • 1
  • 删除文件路径

      os.unlink(path)
    
    • 1
  • 写入字符串到文件描述符 fd中. 返回实际写入的字符串长度

      os.write(fd, str)
    
    • 1
  • 获取当前目录的父目录,以字符串形式显示目录名。

      os.pardir()
    
    • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/656067
推荐阅读
相关标签
  

闽ICP备14008679号