Python中的os库
一.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
相关文章:
Python中的os库
一.OS库简介 OS是Operating System的简写,即操作系统。 OS库是一个操作系统接口模块,提供一些方便使用操作系统相关功能的函数。 二.OS库常用函数 2.1文件和目录 2.1.1:os.getcwd() 作用:返回当前工作目录,结果是…...
C++ | 使用正则表达式匹配特定形式的字符串
C | 使用正则表达式匹配特定形式的字符串 在 C 中,可以使用 <regex> 头文件提供的正则表达式库来对特定形式的字符串进行匹配操作。 常用的正则表达式模式语法 普通字符: 普通字符会按照其字面意义进行匹配,例如 a 会匹配字符 a。 转…...
计算机组成原理-第一/二章 概述和数据的表示和运算【期末复习|考研复习】
文章目录 前言第一章 计算机组成原理 概述及各种码1.1 计算机硬件的基本组成1.1.1 存储器1.1.2 运算器1.1.3 控制器 1.2 计算机的工作过程1.3 计算机的性能指标1.4 各个字长区别与联系 第二章 数据的表示与运算2.1 ASCII码2.2 各种码2.3 浮点数 总结 前言 给大家整理了一下计算…...
基于transform的scale属性,动态缩放整个页面,实现数据可视化大屏自适应,保持比例不变形,满足不同分辨率的需求
文章目录 一、需求背景:二、需求分析:三、选择方案:四、实现代码:五、效果预览:六、封装组件: 一、需求背景: 数据可视化大屏是一种将数据、信息和可视化效果集中展示在一块或多块大屏幕上的技…...
Linux第67步_linux字符设备驱动_注册和注销
1、字符设备注册与注销的函数原型” /*字符设备注册的函数原型*/ static inline int register_chrdev(unsigned int major,\ const char *name, \ const struct file_operations *fops) /* major:主设备号,Limnux下每个设备都有一个设备号,设备号分…...
设计模式:软件工程的艺术
引言 设计模式是软件工程中一种解决常见问题的经验总结,是一套可复用的设计思想。它们提供了在特定情境下的解决方案,有助于构建可维护、灵活、可复用、可扩展的软件系统。设计模式是对软件设计中通用问题的抽象,提供了一种共享的语言和思维…...
试题 算法训练 数的潜能
资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 将一个数N分为多个正整数之和,即Na1a2a3…ak,定义Ma1*a2*a3*…*ak为N的潜能。 给定N,…...
OpenAI Triton 入门教程
文章目录 Triton 简介背景Triton 与 CUDA 的关系 Triton 开发样例样例一:Triton vector addition 算子Triton kernel 实现kernel 函数封装函数调用性能测试 样例二:融合 Softmax 算子动机Triton kernel 实现kernel 封装单元测试性能测试 样例三ÿ…...
【flask+python】利用魔术方法,更优雅的封装model类
定义model # Time :2024-2024/2/27-14:49 # Email :514422868qq.com # Author :Justin # file :user.py # Software :01-fishbook from app.model.base import Base from sqlalchemy import Column, Integer, SmallInteger, String from werkzeug.security …...
Qt程序设计-报警灯自定义控件实例
本文讲解Qt报警灯自定义控件实例。 实现功能 设置边框和内部颜色。 设置是否闪烁点亮。 添加的报警灯类 #ifndef LIGHT_H #define LIGHT_H#include <QWidget> #include <QDebug> #include <QPainter> #include <QTimer>class Light : public QWid…...
Linux之定时任务02
一、什么是crond Linux 中 crond 就是定时任务,即根据 crond 指定的时间,由系统按指定的时间,周期性,自动触发的事件。 crond 服务在默认的情况下会每分钟检查系统中是否有定时任务,如果有且符合触发条件,…...
PHP堆栈+errLog定位
调用堆栈(Call Stack)是一个记录了程序在运行时所有活动子例程的栈结构。它以函数调用的方式描述了程序的执行流程和调用关系。 在PHP中,我们可以通过打印PHP调用堆栈来辅助调试和定位代码中的问题。本文将介绍如何在PHP中打印调用堆栈&…...
【大数据】Flink SQL 语法篇(七):Lookup Join、Array Expansion、Table Function
《Flink SQL 语法篇》系列,共包含以下 10 篇文章: Flink SQL 语法篇(一):CREATEFlink SQL 语法篇(二):WITH、SELECT & WHERE、SELECT DISTINCTFlink SQL 语法篇(三&…...
【云原生】Spring Cloud Gateway的底层原理与实践方法探究
🎉🎉欢迎光临🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟特别推荐给大家我的最新专栏《Spring 狂野之旅:从入门到入魔》 🚀 本…...
springboot 实现本地文件存储
springboot 实现本地文件存储 实现过程 上传文件保存文件(本地磁盘)返回文件HTTP访问服务器路径给前端,进行效果展示 存储 服务端接收上传的目的是提供文件的访问服务,对于SpringBoot而言,其对静态资源访问提供了很…...
Python进阶学习:Pandas--查看DataFrame中每一列的数据类型
Python进阶学习:Pandas–查看DataFrame中每一列的数据类型 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希…...
Groovy - 大数据共享搜索配置
数据共享搜索列中配置了搜索列,相应的数据共享接口中也需要支持根据配置的字段搜索,配置实体时,支持搜索的入参code必须是searchKeys,且接口应该是需要支持分页(入参必须是 current、pageSize)的。current …...
第三节:Vben Admin登录对接后端login接口
系列文章目录 第一节:Vben Admin介绍和初次运行 第二节:Vben Admin 登录逻辑梳理和对接后端准备 第三节:Vben Admin登录对接后端login接口 第四节:Vben Admin登录对接后端getUserInfo接口 第五节:Vben Admin权限-前端控制方式 文章目录 系列文章目录前言一、Flask项目介绍…...
关于CSS 优先级布局应用的教程
在前端开发中,CSS 的优先级布局是非常重要的一部分。通过合理地应用 CSS 优先级,我们可以更加灵活地控制页面的布局和样式。本教程将向您介绍如何利用 CSS 优先级进行布局,并通过实例展示其应用。 1. 了解 CSS 优先级 在 CSS 样式表中&…...
vue2+elementui上传照片(el-upload 超简单)
文章目录 element上传附件(el-upload 超详细)代码展示html代码data中methods中接口写法 总结 element上传附件(el-upload 超详细) 这个功能其实比较常见的功能,后台管理系统基本上都有,这就离不开element的…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
消防一体化安全管控平台:构建消防“一张图”和APP统一管理
在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...
