当前位置: 首页 > news >正文

os模块

os 模块是 Python 中用于与操作系统进行交互的标准库之一。它提供了许多函数来执行文件和目录操作,管理进程以及与操作系统交互的其他功能。

下面是一些 os 模块中常用的函数和功能:

  • 文件和目录操作

    • os.getcwd(): 返回当前工作目录的路径。
    • os.chdir(path): 改变当前工作目录到指定的路径。
    • os.listdir(path='.'): 返回指定目录中的文件和目录的列表。
    • os.mkdir(path): 创建一个目录。
    • os.makedirs(path): 递归地创建目录。
    • os.remove(path): 删除指定的文件。
    • os.rmdir(path): 删除指定的目录。
    • os.removedirs(path): 递归地删除目录。
    • os.stat 用于获取文件或目录的状态信息。
    • os.startfile 用于启动与文件关联的默认应用程序。
  • 路径操作

    • os.path.join(path1, path2, ...): 将多个路径组合成一个。
    • os.path.exists(path): 检查指定路径是否存在。
    • os.path.isdir(path): 判断指定路径是否为目录。
    • os.path.isfile(path): 判断指定路径是否为文件。
    • os.path.basename(path): 返回路径中的文件名部分。
    • os.path.dirname(path): 返回路径中的目录部分。
    • os.path.abspath(path): 返回路径的绝对路径。
  • 进程管理

    • os.system(command): 在子shell中执行系统命令。
    • os.popen(command[, mode[, bufsize]]): 打开一个管道返回文件对象。
    • os.spawn*() 系列函数:以新进程执行指定的程序。
    • os.exec*() 系列函数:用指定的程序替换当前进程。
    • os.fork(): 创建一个子进程(Unix/Linux 系统)。
  • 环境变量

    • os.environ: 包含当前环境变量的字典。
    • os.getenv(var_name[, default]): 获取指定环境变量的值。
  • 权限操作

    • os.chmod(path, mode): 修改文件或目录的权限。
    • os.chown(path, uid, gid): 修改文件或目录的所有者和所属组。

这些是 os 模块中的一些常见功能,它们允许 Python 程序与操作系统进行各种交互。

目录

①os.getcwd()

②os.chdir(path)

③os.listdir(path='.')

④os.mkdir(path)

⑤os.makedirs

⑥os.remove(path)

⑦os.rmdir(path)

⑧os.stat

⑨os.startfile()


①os.getcwd()

os.getcwd() 是 Python 中 os 模块提供的函数之一,用于获取当前工作路径(current working directory)。

import os# 获取当前工作路径
current_working_directory = os.getcwd()# 打印当前工作路径
print("当前工作路径:", current_working_directory)

这个函数不需要任何参数,调用它会返回一个表示当前工作路径的字符串。在上面的例子中,current_working_directory 变量将包含当前 Python 脚本或交互式环境所在的目录的路径。

②os.chdir(path)

os.chdir(path) 是 Python 中的一个函数,用于改变当前工作目录到指定的路径。

以下是 os.chdir(path) 函数的基本使用方法:

import os# 打印当前工作目录
print("当前工作目录:", os.getcwd())# 改变当前工作目录到指定路径
os.chdir('C:/')# 打印改变后的工作目录
print("改变后的工作目录:", os.getcwd())

在上面的示例中,os.chdir(path) 函数将当前工作目录更改为指定的路径 'C:/'。可以将 path
替换为想要的目标目录路径。

需要注意的是,os.chdir() 函数可能会抛出异常,例如 FileNotFoundError,如果指定的路径不存在或者没有权限进行更改。因此,在使用 os.chdir() 函数时,最好在调用前做好错误处理,以确保程序的稳定性。

③os.listdir(path='.')

os.listdir(path='.') 是 Python 中的一个函数,用于返回指定目录中的文件和子目录的列表。

以下是 os.listdir(path='.') 函数的基本使用方法:

import os# 获取当前工作目录中的文件和子目录列表
contents = os.listdir()# 或者可以显式地指定路径
# contents = os.listdir('/path/to/directory')# 遍历列表并打印每个条目
for item in contents:print(item)

在这个示例中,os.listdir() 函数返回当前工作目录中的文件和子目录的列表。你也可以显式地指定一个路径作为参数,以获取特定目录中的内容。

返回的列表包含指定目录中的所有条目的名称,包括文件和子目录。

需要注意的是,如果指定的路径不存在,os.listdir() 函数将会抛出一个 FileNotFoundError 异常。因此,在使用该函数时,最好在调用前做好错误处理,以确保程序的稳定性。

④os.mkdir(path)

os.mkdir(path) 是 Python 中的一个函数,用于创建一个新的目录(文件夹)。

以下是 os.mkdir(path) 函数的基本使用方法:

import os# 指定要创建的目录路径
new_directory = '/path/to/new/directory'# 创建新目录
os.mkdir(new_directory)

在这个示例中,os.mkdir() 函数将在指定路径下创建一个新的目录。需要将 path 替换为想要创建的目录的路径。

需要注意的是,如果指定的目录已经存在,os.mkdir() 函数将会抛出一个 FileExistsError 异常。因此,在创建新目录之前,最好先检查目录是否已经存在,或者使用 os.makedirs() 函数来创建目录及其父目录,以确保程序的稳定性。

⑤os.makedirs(path)

os.makedirs() 函数也是 Python 中用于创建目录的函数,不同的是,它可以递归地创建多层目录。如果其中某些目录已经存在,它会忽略这些已存在的目录。

以下是 os.makedirs() 函数的基本使用方法:

import os# 指定要创建的目录路径
new_directory = '/path/to/new/directory'# 创建新目录(包括其父目录,如果父目录不存在则会创建)
os.makedirs(new_directory)

os.mkdir() 不同,os.makedirs() 可以创建多层目录结构,即使父目录不存在也可以一并创建。这在需要创建嵌套的目录结构时非常有用。

需要注意的是,如果指定的路径中的任何一个部分是一个已经存在的文件,而不是一个目录,则会引发 FileExistsError 异常。因此,在创建目录之前,最好先检查路径的合法性,以确保程序的稳定性。

⑥os.remove(path)

os.remove(path) 是 Python 中用于删除文件的函数。它会删除指定路径下的文件。

以下是 os.remove(path) 函数的基本使用方法:

import os# 指定要删除的文件路径
file_to_delete = '/path/to/file.txt'# 删除文件
os.remove(file_to_delete)

在这个示例中,os.remove() 函数将删除指定路径下的文件。需要将 path 替换为要删除的文件的路径。

需要注意的是,如果指定的文件不存在,os.remove() 函数将会引发 FileNotFoundError 异常。因此,在删除文件之前,最好先检查文件是否存在,以确保程序的稳定性。如果要删除目录而不是文件,可以使用 os.rmdir() 函数,不过要确保目录是空的,否则会引发 OSError 异常。如果要删除目录及其内容,可以使用 shutil.rmtree() 函数。删除文件和目录时,请谨慎操作,以免不可逆地删除重要数据。

⑦os.rmdir(path)

os.rmdir(path) 是 Python 中用于删除空目录的函数。它会删除指定路径下的目录,前提是这个目录为空,即其中没有文件或子目录。

以下是 os.rmdir(path) 函数的基本使用方法:

import os# 指定要删除的目录路径
directory_to_delete = '/path/to/empty_directory'# 删除空目录
os.rmdir(directory_to_delete)

在这个示例中,os.rmdir() 函数将删除指定路径下的空目录。需要将 path 替换为要删除的目录的路径。

需要注意的是,如果指定的目录不为空,即其中包含文件或子目录,os.rmdir() 函数将引发 OSError 异常。在删除非空目录时,可以使用 shutil.rmtree() 函数,它会递归地删除整个目录树,包括目录中的所有文件和子目录。

os.removedirs(path) 函数是 Python 中用于删除目录的函数,它可以递归地删除指定路径下的所有空目录,直到遇到非空目录为止。这个函数会尽可能地删除路径中的每个目录,直到根目录为止。

以下是 os.removedirs(path) 函数的基本使用方法:

import os# 指定要删除的目录路径
directory_to_delete = '/path/to/empty_directory'# 递归地删除目录及其父目录(如果它们为空)
os.removedirs(directory_to_delete)

在这个示例中,os.removedirs() 函数将递归地删除指定路径下的所有空目录,直到遇到非空目录为止。需要将 path 替换为要删除的目录的路径。

需要注意的是,与 os.rmdir() 不同,os.removedirs() 可以删除多个连续的空目录,直到遇到第一个非空目录为止。如果某个目录不为空,os.removedirs() 将停止并引发 OSError 异常。

⑧os.stat(path)

os.stat() 是 Python 中用于获取文件或目录的状态信息的函数。它返回一个包含文件或目录的各种信息的命名元组(named tuple)。

以下是 os.stat() 函数的基本使用方法:

import os# 指定要获取状态信息的文件或目录路径
path = '/path/to/file_or_directory'# 获取指定路径的状态信息
status = os.stat(path)# 输出状态信息
print(status)

os.stat() 函数将返回一个包含以下属性的命名元组:

  • st_mode: 文件的模式(权限)。
  • st_ino: 文件的 inode 号。
  • st_dev: 文件的设备号。
  • st_nlink: 文件的硬链接数。
  • st_uid: 文件的所有者的用户 ID。
  • st_gid: 文件的所有者的组 ID。
  • st_size: 文件的大小,以字节为单位。
  • st_atime: 文件的最后访问时间。
  • st_mtime: 文件的最后修改时间。
  • st_ctime: 文件的创建时间。

可以通过访问返回的命名元组的属性来获取文件或目录的各种状态信息。例如,要获取文件的大小,可以使用 status.st_size

需要注意的是,os.stat() 函数在 Windows 和 Unix-like 系统上的行为可能会有所不同。在某些情况下,它可能不返回所有期望的属性。

⑨os.startfile()

在 Windows 平台上,可以使用 os.startfile() 函数来启动与指定文件关联的默认程序。这个函数比较方便,但是仅限于 Windows 平台使用。

以下是 os.startfile() 函数的基本使用方法:

import os# 指定要启动的文件路径
file_to_open = 'C:\\path\\to\\file.txt'# 使用默认关联的程序启动文件
os.startfile(file_to_open)

在这个示例中,os.startfile() 函数会打开 Windows 上与指定文件关联的默认程序,类似于双击文件在文件资源管理器中打开它。需要将 file_to_open 替换为要启动的文件的路径。

需要注意的是,os.startfile() 函数仅在 Windows 平台上可用,如果你的代码需要在其他操作系统上运行,最好使用跨平台的解决方案,如使用 subprocess.Popen() 函数。

相关文章:

os模块

os 模块是 Python 中用于与操作系统进行交互的标准库之一。它提供了许多函数来执行文件和目录操作,管理进程以及与操作系统交互的其他功能。 下面是一些 os 模块中常用的函数和功能: 文件和目录操作: os.getcwd(): 返回当前工作目录的路径。…...

【C语言进阶】深度剖析数据在内存中的存储--上

1. C语言中的数据类型的简单介绍 注:C99标准里面,定义了bool类型变量。这时,只要引入头文件stdbool.h ,就能在C语言里面正常使用bool类型。 1.1 在C语言中各类型所占内存空间的大小如下 char类型的数据类型大小为1字节即8比特位。…...

【doghead】VS2022 win11 安装配置WSL2 以编译linux端的cmake项目并运行2

【bifrost】VS2022 win11 安装配置WSL2 以编译linux端的cmake项目并运行1 完成了WSL2的安装。13900K 的电脑安装了ubuntu22.04构建中出现了一些问题,fix了。发现libuv 似乎不识别,认为是libuv.so ,无法让worker识别到uv 从而没构建。干脆单独构建好了,官方的脚本如此:而且…...

【教程】C++语言基础学习笔记(七)——Array数组

写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 【C语言基础学习】系列文章 第一章 《项目与程序结构》 第二章 《数据类型》 第三章 《运算符》 第四章 《流程控制》 第五章…...

BUGKU-WEB GET

题目描述 没有提示,就一个get,启动场景看看: 解题思路 显然是PHP语言解读分析代码吧写出你的payload 相关工具 略 解题步骤 进入场景分析代码 $what$_GET[what]; echo $what; if($whatflag) echo flag{****};前两句:使用get…...

蓝桥杯每日一题----唯一分解定理

唯一分解定理 1.内容 任何一个大于1的整数n都可以分解成若干个质数的连乘积,如果不计各个质数的顺序,那么这种分解是惟一的,即若n>1,则有 n ∏ p i j n\prod{p^j_i} n∏pij​ 这里的 p i p_i pi​是质数。可以进行简单证明…...

openssl3.2 - osslsigncode工程的学习

文章目录 openssl3.2 - osslsigncode工程的学习概述笔记工程库地址工程的编译osslsigncodeM工程文件列表osslsigncodeM工程搭建细节原始工程实现的改动自己封装的包含openssl和curl的实现osslsigncodeM工程命令行的用法备注 - VS2019调试环境备注 - 如果要单步openssl的API学学…...

HTML 超文本标记语言

超文本标记语言 HTML 在一个客户程序主窗口上显示出的万维网文档称为页面 (page)。 页面制作的标准语言:HTML。 超文本标记语言 HTML (HyperText Markup Language) 是一种制作万维网页面的标准语言,它消除了不同计算机之间信息交流的障碍&#xff0c…...

sklearn:机器学习 分类特征编码category_encoders

文章目录 category_encoders简介OrdinalEncoder 序列编码OneHotEncoder 独热编码TargetEncoder 目标编码Binary Encoder 二进制编码BaseNEncoder 贝叶斯编码LeaveOneOutEncoder 留一法HashingEncoder 哈希编码CatBoostEncoder catboost目标编码CountEncoder 频率编码WOEEncoder…...

C++错误[错误] call of overloaded ‘min(int, int)‘ is ambiguous

错误代码&#xff1a; #include<iostream> using namespace std;template <class T> T min(T x,T y){if(x<y){return x;}else return y; }int main(){int n12,n210;double d11.5,d25.6;cout<<min(n1,n2)<<endl;cout<<min(d1,d2)<<endl…...

2024全栈元年-thinkphp-数据操作

thinkphp 数据相关操作 1.单数据查询 1、单数据查询 ,Db::table(‘tp_stu’) 必须加前缀 2、如果只是查询符合条件的使用where find,如果没有符合条件的返回null 3、使用 findOrFail 没有数据会抛出异常 4、使用 findOrEmpty 没有数据会返回【】 5、得到最近一个原生SQL …...

HTML世界之第二重天

目录 一、HTML 格式化 1.HTML 文本格式化标签 2.HTML "计算机输出" 标签 3.HTML 引文, 引用, 及标签定义 二、HTML 链接 1.HTML 链接 2.HTML 超链接 3.HTML 链接语法 4.文本链接 5.图像链接 6.锚点链接 7.下载链接 8.Target 属性 9.Id 属性 三、HTML …...

社区经营的好处与优势:为何越来越多的人选择社区店?

社区店&#xff0c;这个曾经被视为小型、局限的商业模式&#xff0c;如今正逐渐崭露头角&#xff0c;成为众多创业者和消费者的首选。 特别是在鲜奶吧这样的细分市场中&#xff0c;社区店更是展现出了其独特的魅力和优势。作为一名拥有五年鲜奶吧经营经验的创业者&#xff0c;…...

C语言系列1——详解C语言:变量、常量与数据类型

目录 写在开始1. 变量与常量的概念1.1. 变量1.2. 常量1.3. 变量与常量的比较1.4. 选择变量还是常量 2. C语言中的基本数据类型2.1. 整型&#xff08;Integer Types&#xff09;2.2. 浮点型&#xff08;Floating-Point Types&#xff09;2.3. 字符型&#xff08;Character Type&…...

WordPress修改所有用户名并发送邮件通知的插件Easy Username Updater

前面跟大家介绍了『如何修改WordPress后台管理员用户名&#xff1f;推荐2种简单方法』一文&#xff0c;但是对于有很多用户的站长来说&#xff0c;操作有点复杂&#xff0c;而且无法发邮件通知对方&#xff0c;所以今天boke112百科向大家推荐一款可以直接在WordPress后台修改所…...

C语言中的数据类型-强转

强制类型转换 概念&#xff1a;将某种类型的数据转化我们需要的数据类型&#xff0c;注意强制类型转化是临时强转&#xff0c;不会改变本身的数据类型。 强转又分为显式强转和隐式转化 显示强转是按照我们的要求进行转化 格式&#xff1a;(需要转化数据类型)变量名 #inclu…...

大数据可视化BI分析工具Apache Superset结合内网穿透实现远程访问

文章目录 前言1. 使用Docker部署Apache Superset1.1 第一步安装docker 、docker compose1.2 克隆superset代码到本地并使用docker compose启动 2. 安装cpolar内网穿透&#xff0c;实现公网访问3. 设置固定连接公网地址 前言 Superset是一款由中国知名科技公司开源的“现代化的…...

C# 线程与线程池的使用方法、注意事项

在C#中&#xff0c;线程和线程池是两种用于实现多线程编程的方式。线程用于执行并发任务&#xff0c;而线程池提供了一种更有效率的方式来管理和复用线程资源。 C# 线程&#xff08;System.Threading.Thread&#xff09; 创建和启动线程&#xff1a; Thread thread new Thre…...

2024年华为OD机试真题-按身高和体重排队-Python-OD统一考试(C卷)

题目描述: :某学校举行运动会,学生们按编号(1、2、3…n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列;对于身高体重都相同的人,维持原有的编号顺序关系。请输出排列后的学生编号。 输入描述:两个序列,每个序列由n个正整数组成(0 < n …...

openGauss学习笔记-218 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-I/O

文章目录 openGauss学习笔记-218 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-I/O218.1 查看I/O状况218.2 性能参数分析 openGauss学习笔记-218 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-I/O 获取openGauss节点的CPU、内存、I/O和网络资源使用情况&#xf…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...