Python中的os库

news2024/11/18 17:38:14

一.OS库简介

OS是Operating System的简写,即操作系统。

OS库是一个操作系统接口模块,提供一些方便使用操作系统相关功能的函数

二.OS库常用函数

2.1文件和目录

2.1.1:os.getcwd()

作用:返回当前工作目录,结果是一个字符串

print(f"当前工作目录为:{os.getcwd()}")

 结果:

2.1.2:os.mkdir(path)

作用:

创建一个路径为path的目录

os.mkdir(f"{os.getcwd()}/zheshiyangyang")

结果:

 2.1.3:os.rmdir(path)

作用:

删除路径为path的目录,若路径不为空或者不存在,则会报错

os.rmdir("666")
os.rmdir("鞠婧祎")
os.rmdir("zheshiyangyang")

效果:

2.1.4:os.chdir(path)

作用:

将工作目录改为path路径下。

tmp = os.getcwd()
os.chdir("E:/zheshiyangyang")
print(f"当前工作目录为:{os.getcwd()}")
os.chdir(tmp)
print(f"当前工作目录为:{os.getcwd()}")

效果:

 

2.1.5:os.listdir(path)

作用:

返回path路径下所有文件和目录名的任意顺序排列的列表。

print(os.listdir(os.getcwd()))

效果:

2.2:os.path常见路径操作

2.2.1:os.path.abspath(path)

作用:

返回path路径的绝对路径(标准化的),path不存在也不会报错

print(os.path.abspath("main.py"))

效果:

2.2.2:os.path.basename(path)

作用:

返回路径path的基本名称(即路径path的最末级文件

print(os.path.basename("main.py"))

效果:

2.2.3:os.path.dirname(path)

作用:

返回路径path的目录名称(即路径path的最末级文件夹

print(os.path.dirname(os.getcwd()))

 效果:

2.2.4:os.path.exists(path)

作用:

判断path是否指向一个已存在的路径,存在返回True,不存在返回False。

print(os.path.dirname(os.getcwd()+"/main.py"))    #文件夹存在
print(os.path.dirname(os.getcwd()+"/666.py"))    #文件不存在

效果:

2.2.5:os.path.isabs(path)

作用:

判断path是否为一个绝对路径,是返回True,不是返回False。

print(os.path.isabs(os.getcwd()))    #是绝对路径
print(os.path.isabs("main.py"))    #不是绝对路径

效果:

 2.2.6:os.path.isfile(path)

作用:

判断path是否为一个已存在的文件,是则返回True,不是返回False。

print(os.path.isfile(os.getcwd()))    #不是文件
print(os.path.isfile("main.py"))    #是文件

效果:

2.2.7:os.path,isdir(path)

作用:

若path指向一个已存在文件夹的符号链接或者一个已存在文件夹路径,返回True,否则返回False

print(os.path.isdir("鞠婧祎"))

效果:

2.2.8:os.path.normcase(path)

作用:

规范路径名称,在Windows操作系统上,将路径名称中的所有字符转为小写,将所有反斜杠转为斜杠。在其它系统上,不做任何修改,返回原先的path。

print(os.path.normcase("C:/6ABS/ADAS4"))

效果:

2.2.9:os.path.split(path)

作用:

将路径path拆分成(head,tail),其中head表示除去路径最后一部分外的所有内容,tail表示路径最后一部分

值得注意的是:

tail部分不会包含斜杠,如果path以斜杠结尾,tail将为空。

如果path中没有斜杠,head将为空。

如果path为空,则head和tail均为空。

example1 = "/abc/def/haha.txt"    #一般路径
example2 = "/abc/def/"    #以斜杠结尾的路径
example3 = "main.py"    #没有斜杠的路径
example4 = ""    #空路径
example5 = "/"    #根目录

print("一般路径head={},tail={}".format(*os.path.split(example1)))
print("以斜杠结尾的路径head={},tail={}".format(*os.path.split(example2)))
print("没有斜杠的路径head={},tail={}".format(*os.path.split(example3)))
print("空路径head={},tail={}".format(*os.path.split(example4)))
print("根目录head={},tail={}".format(*os.path.split(example5)))

效果:

2.2.10:os.path.splitext(path)

作用:

将路径path产分为(A,B),其中A+B == path,B为空或者英文句点开头(最多包含一个句点),且最多包含一个句点。路径前的句点将被忽略。

简单来讲,就是拿掉文件的后缀

example1 = "/abs/cdf/"     #文件夹路径
example2 = "/abs/a.b.py"     #包含多个句点的文件路径
example3 = "/abc/66.py"     #包含单个句点的文件路径
example4 = ".exam"     #以句点开头的路径
print("文件夹路径root={},ext={}".format(*os.path.splitext(example1)))
print("包含多个句点的文件路径root={},ext={}".format(*os.path.splitext(example2)))
print("包含单个句点的文件路径root={},ext={}".format(*os.path.splitext(example3)))
print("以句点开头的路径root={},ext={}".format(*os.path.splitext(example4)))

效果:

2.2.11:os.path.join(path1,path2,path3,......)

作用:

将路径拼接,具体规则如下:

1.如果不存在以“/”或者“/”开始的参数,函数会自动加上“\”。

print(os.path.join("ab","cd","ef"))

2.如果存在“/”或者“\”开头的参数,则从最后一个“/”或者“\”开始拼接,之前的参数全部舍弃。

print(os.path.join("abc","/cd","ef"))    #存在/
print(os.path.join("abc","\\6","ef"))    #存在\
print(os.path.join("/abc","/cd","ef"))    #存在多个/

 

ps:若是从“/”开始,则“/”不会被替换为“\” 

3.如果存在“./”和“/”开头的参数,则以“/”为标准,忽略“./”。

print(os.path.join("abc","./sda","/cxz"))

输出:/cxz 

 4.如果只存在./”开头的参数,则从“./”开头的参数的上一个参数开始拼接。

print(os.path.join("abc","./efd","sad"))

 输出:abc\./efd\sad

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

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

相关文章

WebCPM:首个开源的交互式网页搜索中文问答模型

论文题目:WEBCPM: Interactive Web Search for Chinese Long-form Question Answering   论文日期:2023/05/23(ACL 2023)   论文地址:https://arxiv.org/abs/2305.06849   GitHub地址:https://arxiv.org/abs/2305.06849 文章…

【前端素材】推荐优质后台管理系统cassie平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理网站、应用程序或系统的管理界面,通常由管理员和工作人员使用。它提供了访问和控制网站或应用程序后台功能的工具和界面,使其能够管理用户、内容、数据和其他各种功能。 2、功能需求 后台管理系…

nginx使用详解--动静分离

什么是动静分离? 为了提高网站的响应速度,减轻程序服务器(Tomcat,Jboss等)的负载,对于静态资源,如图片、js、css等文件,可以在反向代理服务器中进行缓存,这样浏览器在请…

亿道信息发布两款升级款全加固笔记本电脑

2022年5月19日,加固手持终端。加固平板电脑、加固笔记本电脑专业设计商和制造商,以及加固型移动计算机软硬件整体定制解决方案提供商亿道信息,宣布对其两款广受欢迎的加固笔记本电脑产品EM-X14U和EM-X15U进行重大升级。新发布的两款升级款全加…

C语言:自定义类型 - 结构体 联合体 枚举

C语言:自定义类型 - 结构体 & 联合体 & 枚举 结构体结构体声明结构体创建匿名结构体初始化 结构体的重命名结构体访问内存对齐位段 联合体枚举 在C语言中,自定义类型是指程序员可以通过一系列的定义和说明来创建的新的数据类型。这些自定义类型可…

NPN型三极管与PNP型三极管基本原理

NPN型三极管与PNP型三极管基本原理 文章目录 NPN型三极管与PNP型三极管基本原理一、三极管二、结构三、工作原理四、基本应用五、总计 一、三极管 三极管是电子电路中最基本、最常见、重要的器件,其主要功能是对电流的放大和开关作用,从半导体结构上可以…

PostgreSQL从入门到精通教程 - 第45讲:poc-tpcc测试

PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。 第45讲&#…

共同应对共享挑战:2023 Open Source Congress 报告(中文版)

开源社受邀参加了 2023 年 7 月底在瑞士日内瓦举办的 2023 Open Source Congress,并发布了一篇会议速览;之后 LFAPAC 发布了会议总结报告(英文版),开源社国际接轨工作组的翻译志愿者们群策群力地翻译了该总结报告。 【…

10-Linux部署ElasticSearch

Linux部署ElasticSearch 简介 全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 es)是目前全文搜索引擎的首选。 它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。 Elasticsearch简称es&…

本地写的Bash脚本,Linux端运行报错:/bin/bash^M: bad interpreter: No such file or directory

背景 在本地写了个Bash Shell脚本,但上传到Linux端后加完权限执行时报错: (脚本名:script.sh) -bash: ./script.sh: /bin/bash^M: bad interpreter: No such file or directory 分析 这个错误通常是由于脚本文件的行…

【kubernetes】关于云原生之k8s集群中pod的容器资源限制和三种探针

目录 一、关于pod容器的资源限制 1.1资源限制的单位 CPU 资源单位 内存 资源单位 二、关于QOS服务质量(pod的调度和驱逐有限制) 2.1QoS服务质量分类 guaranteed验证 burstable验证 besteffort验证 2.2驱逐顺序 三、关于pod容器的三种探针 3.…

【数据结构与算法】回溯法解题20240301

这里写目录标题 一、78. 子集1、nums [1,2,3]为例把求子集抽象为树型结构2、回溯三部曲 二、90. 子集 II1、本题搜索的过程抽象成树形结构如下: 三、39. 组合总和1、回溯三部曲2、剪枝优化 四、LCR 082. 组合总和 II1、思路2、树形结构如图所示:3、回溯…

命令行启动mongodb服务器的问题及解决方案 -- Unrecognized option: storage.journal

目录 mongodb命令行启动问题 -- Unrecognized option: storage.journal问题日志:问题截图:问题来源:错误原因:解决方式: mongodb命令行启动问题 – Unrecognized option: storage.journal 同样是格式出问题的问题分析和…

视频在线压缩

video2edit 一款免费的在线视频编辑软件,可以进行视频合并、视频剪辑、视频压缩以及转换视频格式等。 链接地址:在线视频编辑器和转换器 - 编辑,转换和压缩视频文件 打开视频压缩页面,上传想要压缩视频,支持MP4&…

SpringCloud搭建微服务之Consul服务注册与发现

1. Consul介绍 Consul是由HashiCorp公司使用Go语言开发的一款开源工具,主要用于实现分布式系统的服务发现和服务配置,其内置了服务注册与发现框架、分布式一致性协议实现、健康检查、Key-Value存储、多数据中心方案。Consul具有高可移植性,支…

LTE 网络与互联网的连接

LTE 网络与互联网的连接 当用户设备 UE(如手机)开机后,就登记到 LTE 网络,以便使用网络资源传送 IP 数据业务。 LTE 网络内的数据路径由两大部分组成: -空口无线链路(UE→eNB)。 -核心网中的隧…

【菜鸟入门!】Matlab零基础快速入门教程

数学建模竞赛中,编程软件是必不可缺少的,比如大家都熟知的MATLAB多数同学们都会经常用到,今天给大家介绍一些MATLAB的基本元素,希望帮助大家更好的掌握编写基本的函数! 变量和数组 MATLAB 程序的基本数据单元是数组。一…

Opencv实战(5)平滑处理与常见函数

平滑处理 Opencv实战: Opencv(1)读取与图像操作 Opencv(2)绘图与图像操作 Opencv(3)详解霍夫变换 Opencv(4)详解轮廓 文章目录 平滑处理1.均值滤波2.方框滤波3.高斯滤波4.中值滤波5.双边滤波 常见函数(1).createTrackbar()(2).SetMouseCallback() 图像的平滑处理是…

Intel 芯片 Mac 如何重新安装系统

使用可引导安装器重新安装(可用于安装非最新的 Mac OS,系统降级,需要清除所有数据,过程确保连接上网络,虽然这种方式不会下载 Mac OS,但是需要下载固件等信息) 插入制作好的可引导安装器&#x…

使用docker方式测试部署django项目(客户催)

需求 1:已有django项目–weidanyewu 2:希望在服务器上测试部署–客户催 3:没完善django的启动 4:使用临时数据库进行演示 5:使用python3.10版本镜像 6:展示端口80 7:后台执行django程序 8&#…