news 2026/8/19 11:11:03

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 目录修改成功 /tmp

4、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, mode=511, exist_ok=False)

参数

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.txt

10、与操作系统路径相关的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模块------------
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/19 11:08:11

STM32L在Keil中搭建FreeRTOS项目:从CubeMX生成到手动集成的完整指南

1. 从零到一:为什么要在Keil中为STM32L搭建FreeRTOS项目? 如果你手头有一块STM32L系列的低功耗微控制器,比如STM32L4或者更早的L1、L0系列,并且想用它来做点稍微复杂的事情——比如同时处理传感器数据、响应按键、通过串口发送数据…

作者头像 李华
网站建设 2026/8/19 11:03:06

免费在线工具凭什么接近本地大模型?服务端推理的三个层面全讲透

你把一段 MP3 拖进网页端的人声分离工具,十几秒后输出六条分轨——人声、鼓、贝斯、钢琴、吉他、其他。同样的操作在本地跑 Demucs,RTX 3060 也要跑接近一分钟。更让人困惑的是,网页端是免费的,本地跑还要掏电费。 很多人以为&quo…

作者头像 李华
网站建设 2026/8/19 11:01:41

2026丽水危房鉴定检测怎么选?老旧房危房鉴定靠谱机构 TOP 结构安全检测+ 报告可查 电话汇总

丽水的老旧房屋业主们,面对市面上鳞次栉比的鉴定机构,难免感到眼花缭乱、鱼龙混杂。老旧小区的业主、乡镇自建房的住户、商铺经营者、园区厂房负责人乃至学校医院的管理者,都亟需一份权威可靠的危房安全评估。小编发现,不少无资质…

作者头像 李华
网站建设 2026/8/19 10:58:36

海马汽车销量腰斩背后:传统车企转型困境与生存策略分析

1. 从一份销量快报说起:海马汽车的“半年考”答卷最近,各大车企的半年销量快报陆续出炉,有人欢喜有人愁。海马汽车那份“上半年销量下滑42%”的数据,在业内激起的讨论,远不止于一个简单的百分比。当“业内称年内扭亏‘…

作者头像 李华