Python | OS模块操作

一、介绍

        Python的os模块提供了许多与操作系统交互的函数,可以用于文件和目录的操作、进程管理、环境变量的访问等。以下是os模块的一些常用功能:

  1. 文件和目录操作:os模块提供了许多函数来进行文件和目录的操作,如创建文件夹(os.mkdir)、删除文件夹(os.rmdir)、重命名文件或文件夹(os.rename)、获取文件或目录信息(os.stat)等。

  2. 环境变量:os模块提供了访问和修改环境变量的函数,如获取指定环境变量的值(os.getenv)、设置环境变量的值(os.putenv)等。

  3. 进程管理:os模块提供了一些函数来进行进程管理,如启动一个新的进程(os.system)、获取当前进程的ID(os.getpid)、等待子进程结束(os.wait)等。

  4. 路径操作:os模块提供了一些函数来进行路径操作,如获取当前工作目录(os.getcwd)、拼接路径(os.path.join)、判断路径是否存在(os.path.exists)等。

  5. 杂项操作:os模块还提供了一些其他杂项操作,如执行系统命令(os.popen)、修改文件权限(os.chmod)、获取文件列表(os.listdir)等。

        总的来说,os模块提供了许多与操作系统交互的函数,可以帮助我们在Python程序中进行文件和目录操作、进程管理等操作。详细的文档可以在Python官方文档中找到。

二、目录操作

2.1 获取目录

        2.1.1 获取当前工作目录绝对路径
os.getcwd()
>>> E:\Work\WorkScript
        2.1.2 获取当前工作目录绝对路径(Unicode编码)
os.getcwdb()
>>> b'E:\\Work\\WorkScript'
        2.1.3 获取当前目录
os.curdir
>>> .
        2.1.4 获取当前目录上级目录
os.pardir
>>> ..

2.2 判断目录是否存在

os.path.lexists(指定路径)
>>> True or False

2.3 获取目录下内容

        默认当前目录:

os.listdir()
>>> ['.idea', '.venv', 'test.py']

        指定目录:

os.listdir(指定目录)
>>> ['.idea', '.venv', 'test.py']

        目录不存在时报错,获取前先判断。

import osif os.path.lexists(指定目录):print(os.listdir(指定目录))
else:print("目录不存在")

2.4 创建目录

        目录不存在时报错,创建前先判断。

os.mkdir(指定目录)
import osif os.path.lexists(指定目录): print("指定目录已存在")
else:os.mkdir(指定目录)

2.5 删除目录

        目录不存在或非空时报错,删除前先判断。

os.rmdir(指定目录) 
import osif os.path.lexists(指定目录):if os.listdir(指定目录):print("目录非空")else:os.rmdir(指定目录)
else:print("目录不存在")

2.6 重命名目录

        目录不存在时报错,重命名前先判断。

os.rename(旧路径名, 新路径名)
import osif os.path.lexists(指定目录):os.rename(指定目录, 新路径名)
else:print('目录不存在')

2.7 切换目录

os.chdir(指定绝对路径)

2.8 判断是否是目录

os.path.isdir(指定目录)
>>> True or False

2.9 判断是否是绝对目录

os.path.isabs(指定目录)
>>> True or False

三、路径操作

3.1 路径拼接

os.path.join("123","456","789")
>>> 123\456\789

3.2 分离路径

os.path.split("E:/Work/WorkScript/test.py")
>>> ('E:/Work/WorkScript', 'test.py')os.path.split("E:/Work/WorkScript")
>>> ('E:/Work', 'WorkScript')

3.3 获取路径中文件名

os.path.basename("E:/Work/WorkScript/test.py")
>>> test.py

3.4 获取绝对路径

os.path.abspath("")
>>> E:\Work\WorkScriptos.path.abspath("test.py")
>>> E:\Work\WorkScript\test.py

3.5 获取文件扩展名

os.path.splitext("E:/Work/WorkScript/test.py")
>>> ('E:/Work/WorkScript/test', '.py')

四、文件操作

4.1 打开文件

        指令格式:

os.open(path, flags, mode)其中flag有如下:os.O_RDONLY : 以只读的方式打开os.O_WRONLY : 以只写的方式开os.O_RDWR : 以读写的方式打开os.O_NONBLOCK : 打开时不阻塞os.O_APPEND : 以追加的方式打开os.O_CREAT : 创建或打开文件os.O_TRUNC : 打开一个文件并截断它的长度为零(必须有写权限)

        示例:

# 打开文件进行读取操作
with open("file.txt", "r") as file:# 读取文件内容content = file.read()print("文件内容:", content)

4.2 关闭文件

        在Python中,当使用open()函数打开文件后,应该在文件操作完成后显式地关闭文件,以释放资源并确保文件被正确保存。可以使用文件对象的close()方法来关闭文件。

# 打开文件进行读取操作
file = open("file.txt", "r")# 读取文件内容
content = file.read()
print("文件内容:", content)# 关闭文件
file.close()

        另一种更安全的方式是使用with语句来打开文件,这样可以确保文件在with代码块结束时自动关闭,无需显式调用close()方法。

# 使用with语句打开文件进行读取操作
with open("file.txt", "r") as file:# 读取文件内容content = file.read()print("文件内容:", content)

4.3 创建文件

# 定义文件路径
file_path = "new_file.txt"# 打开文件并写入内容
with open(file_path, "w") as file:file.write("Hello, this is a new file created using Python!")print("文件创建成功:", file_path)

4.4 重命名文件

import os# 定义旧文件名和新文件名
old_file_name = "old_file.txt"
new_file_name = "new_file.txt"# 重命名文件
os.rename(old_file_name, new_file_name)print("文件重命名成功:", new_file_name)

4.5 删除文件

import os# 定义要删除的文件路径
file_path = "file_to_delete.txt"# 删除文件
os.remove(file_path)print("文件删除成功:", file_path)

4.6 判断文件是否存在

import os# 定义文件路径
file_path = "file.txt"# 判断文件是否存在
if os.path.exists(file_path):print("文件存在:", file_path)
else:print("文件不存在:", file_path)

五、环境变量操作

5.1 获取环境变量字典

os.environ

        使用os.environ来获取系统的所有环境变量,并将其存储在env_vars字典中。然后遍历这个字典,打印每个环境变量的键值对,这样可以查看系统中所有的环境变量及其对应的值。

import os# 获取系统的所有环境变量
env_vars = os.environ# 打印所有环境变量
for key, value in env_vars.items():print(f"{key} : {value}")

5.2 获取指定环境变量

os.getenv(env_var_name)

        使用os.getenv()函数来获取名为"PATH"的环境变量的值,并将其存储在env_var_value变量中。然后,打印出该环境变量的名称和对应的值。

import os# 指定要获取的环境变量名称
env_var_name = "PATH"# 获取指定环境变量的值
env_var_value = os.getenv(env_var_name)print(f"{env_var_name} 的值为: {env_var_value}")

5.3 添加环境变量

os.putenv("NEW_VARIABLE", "new_value")

        使用os 模块的putenv()函数来添加或修改环境变量。putenv()函数接受环境变量的名称和值作为参数,并将其添加到系统的环境变量中。

import os# 添加新的环境变量
os.putenv("NEW_VARIABLE", "new_value")

六、通用自定义函数 

6.1 获取指定文目录下所有一级目录列表

def get_first_level_directory(path):"""获取指定目录下所有一级目录文件夹的集合:param path: 指定目录:return: 一级目录文件夹集合"""folder_list = []if not os.path.lexists(path):print("输入路径不存在")else:parent_path = os.listdir(path)for son_path in parent_path:first_level_path = os.path.join(path, son_path)if os.path.isdir(first_level_path):folder_list.append(first_level_path)return folder_list

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

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

相关文章

小红书如何写标题吸引人?

好奇类:利用观众得不到,没体验过的事物,激发好奇心 万能公式:( )是一种什么体验? 例如:日入过千是一种什么体验? 极限类:将抽象的内容具象化,吸引力强,让观众引起重视 万能公式…

CQT新里程碑:SOC 2 数据安全认证通过,加强其人工智能支持

Covalent Network(CQT)发展新里程碑:SOC 2 数据安全认证通过,进一步加强了其人工智能支持 Covalent Network(CQT)现已完成并通过了严格的 Service Organization Control(SOC) 2 Type II 的合规性…

物联网和人工智能的融合

物联网和人工智能的融合 1. 物联网和人工智能的融合2. 芯片技术的进步3. 安全和隐私保护挑战4. 软件开发和调试技术的创新5. 自动化和智能化趋势 1. 物联网和人工智能的融合 随着物联网和人工智能技术的快速发展,嵌入式系统将更多地与物联网设备和人工智能算法相结…

vivo 基于 StarRocks 构建实时大数据分析平台,为业务搭建数据桥梁

在大数据时代,数据分析和处理能力对于企业的决策和发展至关重要。 vivo 作为一家全球移动互联网智能终端公司,需要基于移动终端的制造、物流、销售等各个方面的数据进行分析以满足业务决策。 而随着公司数字化服务的演进,业务诉求和技术架构有…

ELK Stack 日志平台搭建

前言 最近在折腾 ELK 日志平台,它是 Elastic 公司推出的一整套日志收集、分析和展示的解决方案。 专门实操了一波,这玩意看起来简单,但是里面的流程步骤还是很多的,而且遇到了很多坑。在此记录和总结下。 本文亮点:…

windows系统中jenkins构建报错提示“拒绝访问”

一.背景 之前徒弟在windows中安装的jenkins,运行的时候用的是java -jar jenkins.war来运行的。服务器只有1个盘符C盘。今天说构建错误了,问我修改了啥,我年前是修改过构建思路的。 二.问题分析 先看jenkins构建任务的日志,大概是xcopy命令执…

【linux】使用g++调试内存泄露:AddressSanitizer

1、简介 AddressSanitizer(又名 ASan)是 C/C++ 的内存错误检测器。它可以用来检测: 释放后使用(悬空指针) 堆缓冲区溢出 堆栈缓冲区溢出 全局缓冲区溢出 在作用域之后使用 初始化顺序错误 内存泄漏这个工具非常快,只将被检测的程序速度减慢约2倍,而Valgrind将会是程序…

JavaScript:问号?的多种用法

文章目录 条件运算符 (三元运算符)可选链操作符 (?.)空值合并操作符 (??)逻辑赋值运算符(?? )补充:(&&、||) 正则表达式中 条件运算符 (三元运算符) 早在ES1(ECMAScript 1st Edition&#xf…

word软件中硬件图像加速有什么用处?禁用硬件图形加速(G)会影响word文档中插入图片的分辨率吗?

问题描述:word软件中硬件图像加速有什么用处?禁用硬件图形加速(G)会影响word文档中插入图片的分辨率吗? 问题解答: 在 Microsoft Word 中,硬件图形加速主要用于提高图形元素的渲染速度和性能,特别是处理大…

FPS游戏之账号登录流程

在游戏开发中,账号登录的接入流程主要包含以下几个步骤: 创建账号系统:首先需要创建一个账号系统,能够让用户注册账号、登录账号以及找回和修改密码等。这个账号系统可以是自己开发的,也可以是接入的第三方服务如Goog…

如何添加或编辑自定义WordPress侧边栏

WordPress侧边栏是许多WordPress网站上的固定装置。它为您的内容提供了一个垂直空间,您可以在其中帮助读者导航、增加电子邮件列表或社交关注、展示广告等。 因为它是许多WordPress网站不可或缺的一部分,所以我们认为侧边栏值得拥有自己的大型指南。在这…

【leetcode题解C++】763.划分字母区间 and 56.合并区间 and 738.单调递增的数字

763. 划分字母区间 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的…

【AIGC】开源声音克隆GPT-SoVITS

GPT-SoVITS 是由 RVC 创始人 RVC-Boss 与 AI 声音转换技术专家 Rcell 共同开发的一款跨语言 TTS 克隆项目,被誉为“最强大中文声音克隆项目” 相比以往的声音克隆项目,GPT-SoVITS 对硬件配置的要求相对较低,一般只需 6GB 显存以上的 GPU 即可…

物体检测-系列教程8:YOLOV5 项目配置

1、项目配置 yolo的v1、v2、v3、v4这4个都有一篇对应的论文,而v5在算法上没有太大的改变,主要是对v4做了一个更好的工程化实现 1.1 环境配置 深度学习环境安装请参考:PyTorch 深度学习 开发环境搭建 全教程 要求torch版本>1.6&#xf…

HBASE学习九:数据写入 -> BulkLoad

1、功能 在实际生产环境中,有这样一种场景:用户数据位于HDFS中,业务需要定期将这部分海量数据导入HBase系统,以执行随机查询更新操作。这种场景如果调用写入API进行处理,极有可能会给RegionServer带来较大的写入压力: 引起RegionServer频繁f lush,进而不断compact、spl…

【Java EE初阶二十一】http的简单理解(二)

2. 深入学习http 2.5 关于referer Referer 描述了当前页面是从哪个页面跳转来的,如果是直接在地址栏输入 url(或者点击收藏夹中的按钮) 都是没有 Referer。如下图所示: HTTP 最大的问题在于"明文传输”,明文传输就容易被第三方获取并篡改. …

#gStore-weekly | gStore最新版1.2之新增内置高级函数详解(一)

gStore1.2版本新增了七个高级函数,我们第2期将继续介绍的高级函数为:整体/局部集聚系数(clusterCoeff)、鲁汶算法(louvain)、K跳计数(kHopCount)/K跳邻居(kHopNeighbor&a…

Javaopp面向对象部分核心知识梳理

目录 前言: 一.面向对象和面向过程 面向过程 面向对象 面向过程与面向对象 二.类和对象 类 概念 成员变量(静态成员变量 和 非静态成员变量) 成员方法(静态成员方法 和 非静态成员方法) 代码块(实…

React之拖动组件的设计(一)

春节终结束了,忙得我头疼。终于有时间弄自己的东西了。今天来写一个关于拖动的实例讲解。先看效果: 这是一个简单的组件设计,如果用原生的js设计就很简单,但在React中有些事件必须要多考虑一些。这是一个系列的文章,…

Linux CAfile 文件下的/ca-bundle.crt怎么生成的

在配置Linux Nginx SSL证书后,通过服务器访问域名时发现,服务器返回的CA证书是:/etc/pki/tls/certs/ca-bundle.crt 正式我在使用Spring Native安装了Docker自动生成的,而且开启了Docker的自启动,如果你和我一样&#x…