在Python程序中,File对象只能对某个文件进行操作。但是有时需要对某个文件夹目录进行操作,此时就需要使用OS对象来实现。本次只列表介绍OS的各个函数,它们的使用方法下篇文章具体讲解。
在计算机系统中对文件进行操作时,就免不了要与文件夹目录打交道。对一些比较烦琐的文件和目录操作,可以使用 Python提供的OS 模块对象来实现。在OS模块中包含了很多操作文件和目录的函数,可以方便地实现文件重命名、添加/删除目录、复制目录/文件等操作。
在Python语言中,OS对象主要包含如下几个内置函数,介绍说明如下表所示。
| 函数名称 | 描述 |
|---|---|
| os.access(path, mode) | 检验权限模式 |
| os.chdir(path) | 改变当前的工作目录 |
| os.chflags(path, flags) | 设置路径的标记为数字标记 |
| os.chmod(path, mode) | 更改权限 |
| os.chown(path, uid, gid) | 更改文件所有者 |
| os.chroot(path) | 改变当前进程的根目录 |
| os.close(fd) | 关闭文件描述符fd |
| os.closerange(fd_low, fd_high) | 关闭所有文件的描述符,从fd_low(包含)到fd_high(不包含),错误会被忽略 |
| os.dup(fd) | 复制文件描述符fd |
| os.dup2(fd, fd2) | 将一个文件描述符fd复制到另一个fd2 |
| os.fchdir(fd) | 通过文件描述符改变当前工作目录 |
| os.fchmod(fd, mode) | 改变一个文件的访问权限,该文件由参数fd指定,参数mode是UNIX下的文件访问权限 |
| os.fchown(fd, uid, gid) | 修改一个文件的所有权,这个函数修改一个文件的用户ID和用户组ID,该文件由文件描述符fd指定 |
| os.fdatasync(fd) | 强制将文件写入磁盘,该文件由文件描述符fd指定,但是不强制更新文件的状态信息 |
| os.fdopen(fd[, mode[, buferingl]) | 通过文件描述符fd创建一个文件对象,并返回这个文件对象 |
| os.fpathconf(fd, name) | 返回一个打开文件系统配置信息。name为检索的系统配置的值,它也许是一个定义系统的字符串,这些名字在很多标准中指定(POSIX.1, UNIX 95,UNIX 98和其他) |
| os.fstat(fd) | os.fstatvfs(fd) |
| os.fsync(fd) | 强制将文件描述符为fd的文件写入硬盘 |
| os.ftruncate(fd, length) | 裁剪文件描述符fd对应的文件,所以它最大不能超过文件大小 |
| os.getcwd() | 返回当前工作目录 |
| os.isatty(fd) | 如果文件描述符fd是打开的,同时与tty(-like)设备相连,则返回True,否则False |
| os.lchflags(path, flags) | 设置路径的标记为数字标记,类似函数chflags(),但是没有软链接 |
| os.lchmod(path, mode) | 修改链接文件权限 |
| os.Ichown(path,uid, gid) | 更改文件所有者,类似函数chown(),但是不追踪链接 |
| os.link(src, dst) | 创建硬链接,名为参数dst,指向参数src |
| os.listdir(path) | 返回path指定的文件夹包含的文件或文件夹的名字的列表 |
| os.lseek(fd, pos, how) | 设置文件偏移位置,文件由文件描述符fd指示。这个函数依据参数how来确定文件偏移的起始位置,参数pos指定位置的偏移量 |
| os.lstat(path) | 例如 stat(),但是没有软链接 |
| os.major(device) | 从原始的设备号中提取设备major号码(使用stat 中的st_dev或者st_rdev field) |
| os.makedev(major,minor) | 以 major 和 minor 设备号组成一个原始设备号 |
| os.makedirs(neme[, mode]) | 递归文件夹创建函数。和函数 mkdir()类似,但创建的所有 intermediate-level文件夹需要包含子文件夹 |
| os.minor(device) | 从原始的设备号中提取设备minor 号码(使用stat 中的st _dev或者st_rdev field) |
| os.mkdir(path[, mode]) | 以数字mode的mode创建一个名为path的文件夹,默认的mode是0777(八进制) |
| os.mkfifo(path[, mode]) | 创建命名管道,mode为数字,默认为0666(八进制) |
| os.mknod(path[,mode=00600,device]) | 创建一个名为path的文件系统节点 |
| os.open(path, flags[,mode]) | 打开一个文件,并且设置需要的打开选项,参数mode是可选的 |
| os.openpty() | 打开一个新的伪终端对。返回pty和 tty的文件描述符 |
| os.pathconf(path, name) | 返回相关文件的系统配置信息 |
| os.pipe() | 创建一个管道,返回一对文件描述符(r,W),分别表示读和写 |
| os.popen(cmd[,mode[, bufering]]) | 从一个 cmd打开一个管道 |
| os.read(fd, n) | 从文件描述符fd中读取最多n个字节,返回包含读取字节的字符串,文件描述符fd对应文件已达到结尾,返回一个空字符串 |
| os.readlink(path) | 返回软链接所指向的文件 |
| os.remove(path) | 删除路径为nath的文件如果path是一个文件夹,将抛出OSError,查看下面的rmdir(删除一个 directory |
| os.removedirs(name) | 递归删除目录 |
| os.rename(src, dst) | 重命名文件或目录,从src到 dst |
| os.renames(old, new) | 递归地对目录进行更名,也可以对文件进行更名 |
| os.rmdir(path) | 删除path指定的空目录,如果目录非空,则抛出一个OSError异常 |
| os.stat(path:) | 获取path指定的路径信息,功能等同于C API中的stat()系统调用 |
| os.stat_float_times([newvalue]) | 决定stat_result是否以float对象显示时间戳 |
| os.statvfs(path) | 获取指定路径的文件系统统计信息 |
| os.symlink(src, dst) | 创建一个软链接 |
| os.tcgetpgrp(fd) | 返回与终端fd (一个由os.open()返回的打开的文件描述符)关联的进程组 |
| os.tcsetpgrp(fd, pg) | 设置与终端fd (一个由os.open()返回的打开的文件描述符)关联的进程组为pg |
| os.ttyname(fd) | 返回一个字符串,它表示与文件描述符fd关联的终端设备。如果fd没有与终端设备关联,则引发一个异常。 |
| os.unlink(path) | 删除文件路径 |
| os.utime( path, times) | 返回指定的path文件的访问和修改的时间 |
| os. walk(top[, topdown=True[,onerror = None[, followlinks=False]]]) | 输出在文件夹中的文件名通过在数中游走,向上或者向下 |
| os.write(fd, str) | 写入字符串到文件描述符fd中,返回实际写入的字符串长度 |