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() 函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/677575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Go】三、Go并发编程

并发编程 我们主流的并发编程思路一般有:多进程、多线程 但这两种方式都需要操作系统介入,进入内核态,是十分大的时间开销 由此而来,一个解决该需求的技术出现了:用户级线程,也叫做 绿程、轻量级线程、协…

大厂的供应链域数据中台设计

关注我,紧跟本系列专栏文章,咱们下篇再续! 作者简介:魔都技术专家兼架构,多家大厂后端一线研发经验,各大技术社区头部专家博主,编程严选网创始人。具有丰富的引领团队经验,深厚业务架…

庆除夕,比特币两日大涨10%

号外:教链内参2024年1月合订本 今日除夕。昨日今日两天,比特币从43k发力上攻,一度涨超10%至47.7k,以独特的方式给全世界的bitcoiners送去了新春的祝福。 一个新鲜的知识:2023年12月22日,第78届联合国大会协…

JVM 执行引擎

概念 执行class文件中的指令,由解释器编译器组成 补充——Java为什么是半编译半解释型语言 因为Java即有编译器也有解释器,可以用其中一种来运行。 程序执行步骤 解释器与编译器区别 编译器 概念 JIT(Just In Time Compiler)…

vue中使用moment 设置倒计时的方法

vue中使用moment 设置倒计时的方法 日常开发中时常需要使用倒计时的方法 现在进行封装一下 //第一步 引入moment import moment from moment;let nowTime:any ref()//当前时间 let diffTime:any ref()//当前时间和指定时间的差值 let countdown:any ref(0)//倒计时 // 设置…

深入探索Java IO:从基础到高级操作全览

深入探索Java IO:从基础到高级操作全览 Java IO一、概览二、磁盘操作三、字节操作实现文件复制装饰者模式 四、字符操作编码与解码String 的编码方式Reader 与 Writer实现逐行输出文本文件的内容 五、对象操作序列化Serializabletransient 六、网络操作InetAddressU…

机器学习系列——(十三)多项式回归

引言 在机器学习领域,线性回归是一种常见且简单的模型。然而,在某些情况下,变量之间的关系并不是线性的,这时候我们就需要使用多项式回归来建模非线性关系。多项式回归通过引入高次项来扩展线性回归模型,从而更好地拟…

【前端】Vue实现网站导航 以卡片形式显示(附Demo)

目录 前言1. html版本2. Vue2.1 Demo12.2 Demo2 前言 单独做一个跳转页面推荐阅读:【前端】实现Vue组件页面跳转的多种方式 但是如果网站多了,推荐卡片式导航,具体可看下文:(以图片显示显示各个网站,图片…

MySQL-视图(VIEW)

文章目录 1. 什么是视图?2. 视图 VS 数据表3. 视图的优点4. 视图相关语法4.1 创建视图4.2 查看视图4.3 修改视图4.4 删除视图4.5 检查选项 5. 案例6. 注意事项 1. 什么是视图? MySQL 视图( View)是一种虚拟存在的表,同…

七、滚动条操作——调整图像对比度

对比度调整:是在原来图像基础上进行相应的公式调整,是类似乘法操作,本身像数值越大,对比度增加之后其与低像素点值差距越大,导致对比增强 项目最终效果:通过滚动条trackbar来实现调整图片亮度的功能 我这里…

关于Import

一、Import解释 Import只能用在类上 Import通过快速导入的方式实现把实例加入spring的IOC容器中 Import注解可以用于导入第三方包 二、Import有三种使用方法 Import的三种用法: 1、直接填class数组方式 直接填对应的class数组,class数组可以有0到多个…

【Java】苍穹外卖 Day02

苍穹外卖-day02 课程内容 新增员工员工分页查询启用禁用员工账号编辑员工导入分类模块功能代码 **功能实现:**员工管理、菜品分类管理。 员工管理效果: 菜品分类管理效果: 1. 新增员工 1.1 需求分析和设计 1.1.1 产品原型 一般在做需…

6.JavaScript中赋值运算符,自增运算符,比较运算符,逻辑运算符

赋值运算符 就是简单的加减乘除&#xff0c;没啥可说的这里直接上代码比较好 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><…

RabbitMQ:分布式系统中的高效消息队列

目录 摘要 RabbitMQ简介 1.1 背景与起源 1.2 核心概念 RabbitMQ的基本工作原理 2.1 生产者和消费者 2.2 队列 2.3 交换机和绑定 RabbitMQ的使用 3.1 安装与配置 3.2 生产者示例 3.3 消费者示例 3.4 异常处理与监控 RabbitMQ在实际应用中的场景 4.1 消息通知 4.2…

深入理解STM32中断控制器:NVIC的工作原理与配置方法

在STM32微控制器中&#xff0c;中断控制是实现外部事件响应和实时任务调度的重要机制&#xff0c;其中中断优先级的配置和管理是至关重要的。NVIC&#xff08;Nested Vectored Interrupt Controller&#xff09;是STM32微控制器上的中断控制器&#xff0c;负责接收、管理和分发…

ios设备解锁 --Apeaksoft iOS Unlocker

Apeaksoft iOS Unlocker是一款针对iOS系统的密码解锁工具。其主要功能包括解锁多种锁屏类型&#xff0c;包括数字密码、Touch ID、Face ID和自定义密码。此外&#xff0c;它还可以帮助用户删除iPhone密码以进入锁屏设备&#xff0c;忘记的Apple ID并将iPhone激活为新的&#xf…

二叉树的锯齿形遍历,力扣

目录 题目&#xff1a; 我们直接看题解吧&#xff1a; 快速理解解题思路小建议&#xff1a; 解题方法&#xff1a; 相似题目对比分析&#xff1a; 解题分析&#xff1a; 解题思路&#xff1a; 补充说明&#xff1a; 思路优化&#xff1a; 代码实现(层序遍历倒序)&#xff1a; 题…

备战蓝桥杯---动态规划(基础2)

本专题主要是介绍几个比较经典的题目&#xff1a; 假设我们令f[i]为前i个的最长不下降子序列&#xff0c;我们会发现难以转移方程很难写&#xff08;因为我们不知道最后一个数&#xff09;。 于是&#xff0c;我们令f[i]为以i结尾的最长不下降子序列&#xff0c;这样子我们就可…

Leetcode 第 112 场双周赛题解

Leetcode 第 112 场双周赛题解 Leetcode 第 112 场双周赛题解题目1&#xff1a;2839. 判断通过操作能否让字符串相等 I思路代码复杂度分析 题目2&#xff1a;2840. 判断通过操作能否让字符串相等 II思路代码复杂度分析 题目3&#xff1a;2841. 几乎唯一子数组的最大和思路代码复…

C#系列-访问SqlServer+Mysql+Oracle数据库(6)

目录 一、 C#访问SqlServer数据库 二、 C#异步读取SqlServer数据库 三、 C#访问Mysql数据库 四、 C#访问Oracle数据库 一&#xff0c;C#访问SqlServer数据库 在C#中访问SQL Server数据库&#xff0c;你通常会使用ADO.NET (ActiveX Data Objects .NET)&…