os模块的使用

os模块提供的就是各种 Python 程序与操作系统进行交互的接口。通过使用os模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性

需要注意的是:导入 os 模块时还要小心一点,千万不要为了图调用省事儿而将os 模块解包导入,即不要使用:

 from os import *

来导入os 模块;否则 os.open() 将会覆盖内置函数 open() ,从而造成预料之外的错误。

os模块

  • os.name

指明了当前 Python 运行所在的环境。目前有效名称为以下三个:posixntjava

其中:

posix 是 Portable Operating System Interface of UNIX(可移植操作系统接口)的缩写。Linux 和 Mac OS 均会返回该值;

nt 全称应为 “Microsoft Windows NT”,大体可以等同于 Windows 操作系统,因此 Windows 环境下会返回该值;

java 则是 Java 虚拟机环境下的返回值。

  • os.environ

返回环境相关的信息,主要是各类环境变量。

  • os.walk()

这个函数需要传入一个路径作为 top 参数,函数的作用是在以 top 为根节点的目录树中游走,对树中的每个目录生成一个由 (dirpath, dirnames, filenames) 三项组成的三元组。

其中:

dirpath 是一个指示这个目录路径的字符串
dirnames 是一个 dirpath 下子目录名(除去 “.” 和 “..” )组成的 列表

filenames 则是由 dirpath 下所有非目录的文件名组成的列表。
要注意的是,这些名称并不包含所在路径本身,要获取 dirpath 下某个文件或路径从 top 目录开始的完整路径,需要使用 os.path.join(dirpath, name) 。

该函数返回值为一个迭代器,需要使用循环获取每一项内容

  • os.listdir()

列出(当前)目录下的全部路径(及文件)。该函数存在一个参数,用以指定要列出子目录的路径,默认为 .,即“当前路径”。返回值为一个列表

  • os.mkdir()

用处是新建一个路径。需要传入一个类路径参数用以指定新建路径的位置和名称,如果指定路径已存在,则会抛出 FileExistsError 异常。该函数只能在已有的路径下新建一级路径,否则(即新建多级路径)会抛出 FileNotFoundError 异常。

  • os.makedirs()

与os.mkdir()功能相同,唯一的区别是该函数执行的是递归创建,若有必要,会分别新建指定路径经过的中间路径,直到最后创建出末端的 “叶子路径”。

  • os.remove()

用于删除文件,如果指定路径是目录而非文件的话,就会抛出 IsADirectoryError 异常

  • os.removedirs()

递归删除文件,该函数会尝试从最下级目录开始,逐级删除指定的路径,几乎就是一个 os.makedirs() 的逆过程;一旦遇到非空目录即停止。

  • os.rmdir()

用于删除目录

  • os.rename()

该函数的作用是将文件或路径重命名,一般调用格式为 os.rename(src, dst) ,即将 src 指向的文件或路径重命名为 dst 指定的名称。注意 如果指定的目标路径在其他目录下,该函数还可实现文件或路径的 剪切并粘贴 功能。

  • os.renames()

与os.rename()类似,不过该函数能够创建缺失的中间路径

  • os.getcwd()

获取当前工作路径

  • os.chdir()

切换当前工作路径为指定路径。其中“指定路径”需要作为参数传入函数os.chdir(),该参数既可以是文本或字节型字符串,也可以是一个文件描述符,还可以是一个广义的类路径(path-like)对象。若指定路径不存在,则会抛出 FileNotFoundError 异常。

  • os.system()

运行shell命令,其中需要运行的命令需要作为参数传入,并运行结果会直接显示,需要注意的是,该函数是有返回值的,如果返回值为0,则表示运行成功,否则返回为1

os.path 模块

其实这个模块是 os 模块根据系统类型从另一个模块导入的,并非直接由 os 模块实现.使用该模块要注意一个很重要的特性:os.path 中的函数基本上是纯粹的字符串操作。换句话说,传入该模块函数的参数甚至不需要是一个有效路径,该模块也不会试图访问这个路径,而仅仅是按照“路径”的通用格式对字符串进行处理。

  • os.path.join()

可以将多个传入路径组合为一个路径。

  • os.path.abspath()

将传入路径规范化,返回一个相应的绝对路径格式的字符串。当传入路径符合“绝对路径”的格式时,该函数仅仅将路径分隔符替换为适应当前系统的字符,不做其他任何操作,并将结果返回。当指定的路径不符合上述格式时,该函数会自动获取当前工作路径,并使用os.path.join() 函数将其与传入的参数组合成为一个新的路径字符串。

  • os.path.basename()

该函数返回传入路径的 “基名”,即传入路径的最下级目录。需要注意的是,如果最下级目录之后还有一个分隔符,得到的就会是一个空字符串

  • os.path.dirname()

与os.path.basename()相反,返回的是最后一个分隔符前的整个字符串

  • os.path.split()

将传入路径以最后一个分隔符为界,分成两个字符串,并打包成元组的形式返回;

前两个函数 os.path.dirname() 和 os.path.basename() 的返回值分别是函数 os.path.split() 返回值的第一个、第二个元素。

  • os.path.exists() 

用于判断传入的参数所指向的位置是否存在。若存在则返回 True ,不存在则返回 False

  • os.path.isabs()

判断传入路径是否是绝对路径,若是则返回 True,否则返回 False

  • os.path.isfile()

判断传入路径是否是文件,若是则返回 True,否则返回 False

  • os.path.isdir()

判断传入路径是否是目录,若是则返回 True,否则返回 False

  • os.path.relpath

以绝对路径生成相对路径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HHYZBC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值