Python里的OS模块,竟藏着与操作系统交互的惊天秘密

📅 2026/8/19 11:11:12
Python里的OS模块,竟藏着与操作系统交互的惊天秘密
中OS模块的常见20种用法总结 前言“OS”是“ ”的缩写, 从名称来看, OS模块所提供的, 是各类程序同操作系统进行交互的接口。运用OS模块, 一方面能够便利地与操作系统交互, 另一方面还可极大提升代码的可移植性。其中的OS模块给出了跟操作系统交互的函数, 操作系统属于此、标准实用的程序模块。该模块供给了一类好用的办法, 利用这类依赖操作系统的函数的途径便是此办法。OS模块有着极为丰富的办法, 用于处理文件以及目录。1、os.()概述os.() 方法用于返回当前工作目录。语法()方法语法格式如下os.getcwd()参数: 无返回值:返回当前进程的工作目录。2、os.()概述.os.() 这一方法, 被用来去返回, 指定的那个文件夹, 所包含的文件, 或者文件夹的名字, 所构成的列表。此列表, 是按照字母顺序排列的。它并不把 . 和… 包含在内, 即便它处于文件夹之中。os.listdir(path)参数: path – 需要列出的目录路径返回值: 返回指定路径下的文件和文件夹列表。实例:import os path os.getcwd() dirs os.listdir(path) for file in dirs: print(file)3、os.chdir()概述‘os.chdir()’此方法, 是用来将当前工作的那个目录转而变更为设定好的指定路径的。语法chdir()方法语法格式如下os.chdir(path)参数path – 要切换到的新路径。返回的那个值是这样的: 一旦允许进行访问, 那么就返回True, 不然在这种情况下就返回False。实例import os path /tmp # 查看当前工作目录 retval os.getcwd() print (当前工作目录为, retval) # 修改当前工作目录 os.chdir(path) # 查看修改后的工作目录 retval os.getcwd() print (目录修改成功, retval)执行以上程序输出结果为当前工作目录为 /www 目录修改成功 /tmp4、os.mkdir()概述用于创建目录的 os.mkdir() 方法, 是以数字权限模式来进行的, 其中默认的模式是 0777, 此为八进制哦。要是目录存在多级情况, 那就去创建最后一级, 但若最后一级目录它的上级目录当中存在不存在的情况, 就会抛出一个。语法mkdir()方法语法格式如下os.mkdir(path[, mode])参数:path – 要创建的目录可以是相对或者绝对路径。mode – 要为目录设置的权限数字模式返回值:该方法没有返回值。实列以下实例演示了 mkdir() 方法的使用import os here os.getcwd() # 创建的目录 path /hourly os.mkdir(here path, 0755 ) print (目录已创建)5、os.()概述os.() 方法用于递归创建多层目录。假设子目录创建出现失败状况, 或者该子目录已然存在, 那么就会抛出一个名为Error 183, 且指向目录已经存在的异常错误的、特定的异常, 此异常即为当子目录创建失败从而导致目录已存在时抛出的异常。要是第一个参数path仅仅只有一级, 也就是仅仅去创建一层目录, 那么这和mkdir()函数是一样的。语法()方法语法格式如下os.makedirs(name, mode511, exist_okFalse)参数path – 需要递归创建的目录可以是相对或者绝对路径。mode, 也就是权限模式, 其默认的模式是511, 这里的511是八进制的表示。是否于目录存在之际触发异常, 若为False此乃默认值, 那么在目标目录已然存在的情形下触发异常, 假若是True, 那么在目标目录已然存在的情形下不会触发异常。返回值该方法没有返回值。实列import os # 创建的目录 path home/monthly/daily os.makedirs(path, 0o777); print (路径被创建)6、os.rmdir()概述os.rmdir()方法是用来在指定特定路径之处删除目录的, 它存在这样一种情况, 那就是仅当这个文件夹呈现为空的状态时才行, 要不的话, 就会抛出。语法rmdir()方法语法格式如下os.rmdir(path)参数path – 要删除的目录路径返回值该方法没有返回值实例import os # 列出目录 print(目录为:,os.listdir(os.getcwd())) # 删除路径 os.rmdir(mydir) # 列出重命名后的目录 print (目录为:, os.listdir(os.getcwd()))执行以上程序输出结果为目录为:[a1.txt,resume.doc,a3.py,mydir] 目录为:[a1.txt,resume.doc,a3.py]7、os.()概述os.() 方法被用来删除指定路径那儿的文件, 要是指定的路径属于一个目录, 就会抛出。在Unix, 中有效语法()方法语法格式如下os.remove(path)参数path – 要移除的文件路径返回值该方法没有返回值。实例以下实例演示了 () 方法的使用import os # 列出目录 print(目录为:, os.listdir(os.getcwd())) # 移除 os.remove(aa.txt) # 移除后列出目录 print(移除后目录为:, os.listdir(os.getcwd()))执行以上程序输出结果为目录为: [a1.txt, aa.txt, demo.py] 移除后目录为[a1.txt, demo.py]8、os.()概述**os.()**方法于子 shell 之中执行命令字符串, 其通过调用标准 C 函数予以实现, 且具备相同限制, 若该命令产生任何输出, 便会将其传送至解释器标准输出流, 无论何时运用此方法, 均会开启操作系统相应 shell 并于其上执行命令。用法 os.()参数: 它是字符串类型告诉执行哪个命令。返回值, 于 Unix 而言, 返回值为进程的退出状态, 于上, 返回值乃系统 shell 程序在运行命令后所返回的值。实例import os # Command to execute # Using Windows OS command cmd date # Using os.system() method os.system(cmd)9、os.sep概述os.sep展现着文件路径里的分隔符, 于各异的操作系统当中, 文件路径的分隔符会存在差异, 在Unix以及Linux所属系统里, 分隔符常常是/“, 于相应系统内, 分隔符通常是”。os.sep所具备的作用是充当文件路径分隔符, 其目的在于对文件路径字符串予以组织。import os file_path data os.sep file.txt print(file_path)执行以上程序输出结果为data\file.txt10、与操作系统路径相关的os.path模块, 存在着1) 名为如os.path.isdir()这样的内容。概述os.path.isdir()这个方法, 被用来检查指定的路径是不是现有目录。这个方法会遵循符号链接, 也就是说, 倘若指定的路径是指向目录的符号链接, 那么该方法将会返回True。用法 os.path.isdir(path)参数path代表文件系统路径的path-like对象。返回类型: 该方法所返回的是属于布尔型的那样一种布尔值。于指定路径为现有目录的情形下, 此方法会返回True, 不然的话就返回False。2) os.path.()概述os.path.() 被用来查看指定的路径是不是现存的常规文件。用法 os.path.(path)参数Path, 它所代表的是那种用于表示文件系统路径的path - like对象, 而path - like对象呢, 则是一种用来表示路径的, 不是字符串就是字节对象的东西。返回类型, 此方法返回的是布尔型的值是布尔值。要是指定的路径是现存的常规文件那此方法便返回 True, 不然就返回 False。3) os.path.split()概述采用os.path.split() 方法, 其作用是把路径名称划分成一对, 包含头部与尾部, 于此情境下, tail乃最终路径名构成部分, head则属致使该名称产生的全部内容。用法 os.path.split(path)参数path, 它指的是那种代表文件系统路径的对象, 这种对象是path - like类型的。那path - like对象呢, 是一种能表示路径的对象, 它要么是str类型, 要么是bytes类型。返回类型此方法返回一个表示指定路径名的头和尾的元组。4) os.path.()概述os.path.()这个方法, 被用来把路径名称拆分成一对, 其中一个是驱动器部分, 另一个是尾部, 在这儿, 驱动器要么是安装点, 要么就是空字符串, 剩下构成路径其余部分的就是那个 叫作尾部的内容。处于未运用驱动器规范的诸多系统之上, 驱动器会一直呈现为空字符串的状况, 给出一些这般情形的例子, 像UNIX这种系统。处于上方的情况下, os.path这个括号内填写东西的具体某个称之为方法的值, 它会把给定的那个路径的名称, 区分成驱动器或者UNC共享点当作驱动器看待并且将除此之外的其他路径的组成部分当作尾部。用法 os.path.(path)参数path代表文件系统路径的path-like对象。 path-like对象是表示路径的str或bytes对象。返回类型, 这个方法返回出来的是一个元组, 此元组能够表示给定路径名的驱动器和其尾部。5) os.path.join()概述os.path.join() 方法, 以很有点莫测的方式, 把一个甚至超过一个的路径组件给连接起来。这个方法呢, 会把各个路径组成成分, 在每个不是空的部分之后, 跟最后一个路径组成部分, 刚好借着一个代表目录分隔的符号(/)给串联到一块儿。要是要去连接的最后一个路径组件是没有内容的那种, 那就会把目录分隔符号(‘/’)径直放置在最末尾处。要是路径组件呈现绝对路径的样子, 那就会舍弃所有之前连起来的组件, 然后从绝对路径组件那里接着进行连接。其用法为, os.path.join, 它用于连接路径, 其中有path, 还有*paths。参数path代表文件系统路径的path-like对象。paths: path-like对象, 其代表了文件系统路径, 它表示的是要连接起来的路径组件。path-like对象是表示路径的字符串或字节对象。注意, 函数定义这儿, 所包含的特殊语法是* args, 此处具体来说是* paths, 它起到的作用, 是朝着函数传达可变数量的参数。返回类型此方法返回一个表示串联路径组件的字符串。6) os.path.()概述os.path.()这个方法, 被用来检查指定的路径是不是存在, 此方法还能够用于检查给定的路径有没有引用打开的文件描述符。用法 os.path.(path)参数path代表文件系统路径的path-like对象。 path-like对象是表示路径的字符串或字节对象。返回类型是, 此方法返回的是布尔型的那种布尔值。要是路径存在的话那此方法返回True, 不然返回False。7) os.path.()概述os.path 里的 (path) 这项方法, 是被用来返回文件的绝对路径的或者是返回目录的绝对路径的。语法格式如下os.path.(path)参数路径: 它所意味的呢, 是那个要对于去取得绝对路径而言的相对路径状态, 其范围, 既能够是文件形式, 又可是目录形式。返回值返回获取到的绝对路径。8) os.path.()概述os.path.()方法用以获取指定路径里的基本名称, 该方法于内部运用os.path.split()方法把指定路径划分成一对(头, 尾), 且会将指定的路径给予拆分并返回尾部(头, 尾)对。用法 os.path.(path)参数path代表文件系统路径的path-like对象。返回类型, 此方法返回一个字符串值, 此字符串值表示指定路径的 基本名称。9) os.path.()概述os.path.() 方法用于从指定路径获取目录名称。用法 os.path.(path)参数path代表文件系统路径的path-like对象。返回类型, 这个方法会返回一个字符串值, 此字符串值是用于表示指定路径当中的目录名称。10) os.path.()概述os.path.()方法用以把路径名划分成成对的根与扩展名。于此处, ext代表扩展, 带有指定路径的扩展部分, 而root是除去ext之外的所有部分。要是指定的路径不存在扩展名, 那么ext为空。倘若指定路径有着前置时间(“。”), 它会被忽略。用法 os.path.(path)参数path代表文件系统路径的path-like对象。 path-like对象是表示路径的str或bytes对象。返回的类型是, 此方法所返回的是, 一个代表指定路径名的根这一部分, 以及扩展部分一同所构成的元组。11) os.path.()概述os.path.针对path返回文件大小, 要是文件不存在, 便返回错误。以上os.path的模块方法实例展示import os print(__file__) print(---------- os.path模块------------) print(os.path.isdir(hourly)) # 返回布尔型的布尔值。如果指定的路径是现有目录则此方法返回True否则返回False。 print(os.path.isfile(a1.txt)) # 返回布尔型的布尔值。如果指定的路径是现有文件则此方法返回True否则返回False。 print(os.path.split(D:/PythonCodes/Test/a1.txt)) # 分割文件名与路径 print(os.path.splitdrive(os.getcwd())) # 返回一个表示给定路径名的驱动器和尾部的元组。 print(os.path.join(Demo, test, a1.txt)) # 将目录和文件名合成一个路径 print(os.path.exists(hourly)) # 判断路径path是否存在存在返回True否则返回False print(os.path.abspath(__file__)) # 输出绝对路径 print(os.path.basename(__file__)) # 返回文件名 print(os.path.dirname(__file__)) # 返回目录路径 print(os.path.splitext(__file__)) # 返回一个表示指定路径名的根和扩展部分的元组。 print(os.path.getsize(__file__)) # 输出文件大小字节为单位 print(---------- os.path模块------------)执行以上程序输出结果为D:\PythonCodes\Test\test.py ---------- os.path模块------------ True True (D:/PythonCodes/Test, a1.txt) (D:, \\PythonCodes\\Test) Demo\test\a1.txt True D:\PythonCodes\Test\test.py test.py D:\PythonCodes\Test (D:\\PythonCodes\\Test\\test, .py) 1398 ---------- os.path模块------------