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

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

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

相关文章

前端常用6种数据加密方式的使用(最详解)

目录 前言 一、6种常用加密方案 1.Base64加密 2.MD5加密(不可逆) 3.sha256加密 4.sha1加密(相比于MD5 安全性高,但是 速度慢) 5.AES加密 6.字符串的编码和解码 二、结语 往期回顾 前言 相信大家在工作或面试…

windbg调试.net程序知识快速参考

最近因团队下一个开发工程师的WPF应用存在偶尔卡顿的现象,重新温习了下windbg的知识,此次记录备忘下,以下是整理的思维导图,有点乱,哈哈。 FAQ 运行!address -summary时,提示错误 ntdll.dll not found 查过…

雾锁王国Enshrouded服务器CPU内存配置怎么选择?

雾锁王国/Enshrouded服务器CPU内存配置如何选择?阿里云服务器网aliyunfuwuqi.com建议选择8核32G配置,支持4人玩家畅玩,自带10M公网带宽,1个月90元,3个月271元,幻兽帕鲁服务器申请页面 https://t.aliyun.com…

LightDB24.1 lt_package系统表字段 pkgboby一行长度限制为8160

背景 oracle plsql支持创建package和package boby,且支持的长度超过postgres所限定的8192个字节的长度(实际上postgres出去元组头部分所占的空间,长度肯定是小于8192字节的)。目前遇到的情况就是oracle环境下包的长度远远大于Li…

打卡今天内存管理

首先我们的体系结构是这样的,根据小林coding 来写的笔记 寄存器,速度非常快, 32位的可以存4个字节,64位的可以存8个字节 多少位只是在32位以上 地址空间 分为两种地址空间 : 物理,逻辑 地址空间 地址空间…

选择排序,冒泡排序,插入排序,快速排序及其优化

目录 1 选择排序 1.1 原理 1.2 具体步骤 1.3 代码实现 1.4 优化 2 冒泡排序 2.1 原理 2.2 具体步骤 2.3 代码实现 2.4 优化 3 插入排序 3.1 原理 3.2 具体步骤 3.3 代码实现 3.4 优化 4. 快速排序 4.1 原理 4.2 具体步骤 4.3 代码实现 4.4 优化 为了讲…

源码和包管理器安装U-Boot tools

源码和包管理器安装U-Boot tools U-Boot(Universal Bootloader)是一个开源的嵌入式系统引导加载程序,用于引导嵌入式系统,如单板计算机、嵌入式开发板等。U-Boot 提供了一种灵活的引导解决方案,支持多种处理器架构和嵌…

使用pyannote-audio实现声纹分割聚类

使用pyannote-audio实现声纹分割聚类 1 简单介绍 pyannote.audio是用Python编写的用于声纹分割聚类的开源工具包。在PyTorch机器学习基础上,不仅可以借助性能优越的预训练模型和管道实现声纹分割聚类,还可以进一步微调模型。 它的主要功能有以下几个&…

ISP代理是什么?跨境账号养号为什么要选择它?

在跨境出海业务中,代理IP对于您的在线任务至关重要,尤其是对于那些运行多个帐户的人来说。为您的帐户选择正确类型的代理对于确保帐户安全非常重要,劣质的IP容易使账号遭受封号风险。IPFoxy的多种代理IP类型应用范围各有侧重,其中…

【GO开发工程师】grpc进阶#golang

【GO开发工程师】grpc进阶#golang 推荐个人主页:席万里的个人空间 文章目录 【GO开发工程师】grpc进阶#golang1、protobuf2、grpc2.1、gRPC 的 Metadata机制2.2、grpc拦截器 1、protobuf syntax "proto3"; // 指定使用的 protobuf 版本为 proto3 import…

vue-router4 (六) 命名视图

命名视图可以使得同一级(同一个组件)中展示更多的路由视图,而不是嵌套显示, 命名视图可以让一个组件中具有多个路由渲染出口,这对于一些特定的布局组件非常有用。 应用场景: 比如点击login切换到组件A&am…

Random,随机函数

黑马程序员学习笔记 nextInt(n): 只生成0~(n-1)之间的数字,不包括n 主要代码就三个; package com.zhang.random;import java.util.Random;public class RandomDemo1 {public static void main(String[] args) {//目标:掌握使用Random生成随…

进制转换md5绕过 [安洵杯 2019]easy_web1

打开题目 在查看url的时候得到了一串类似编码的东西,源码那里也是一堆base64,但是转换成图片就是网页上我们看见的那个表情包 ?imgTXpVek5UTTFNbVUzTURabE5qYz0&cmd 我们可以先试把前面的img那串解码了 解码的时候发现长度不够,那我们…

算法沉淀——动态规划之子序列问题(下)(leetcode真题剖析)

算法沉淀——动态规划之子序列问题 01.最长定差子序列02.最长的斐波那契子序列的长度03.最长等差数列04.等差数列划分 II - 子序列 01.最长定差子序列 题目链接:https://leetcode.cn/problems/longest-arithmetic-subsequence-of-given-difference/ 给你一个整数数…

springboot+vue实现oss文件存储

前提oss准备工作 进入阿里云官网:阿里云oss官网 注册 搜OSS,点击“对象存储OSS” 第一次进入需要开通,直接点击立即开通,到右上角AccessKey管理中创建AccessKey,并且记住自己的accessKeyId和accessKeySecret&#…

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

【数据结构与算法】回溯法解题20240229 一、46. 全排列1、以[1,2,3]为例,抽象成树形结构2、回溯三部曲 二、LCR 084. 全排列 II1、以[1,1,2]为例,抽象成树形结构 三、面试题 08.07. 无重复字符串的排列组合四、面试题 08.08. 有重复字符串的排列组合 一、…

Java面试资料集合,只需一篇文章吃透Java多线程技术

前言 受到疫情影响我从过完年一直呆在家里,索性学点知识方便以后跳槽涨薪,于是从二月份开始学习阿里P8架构师纯手打的一份Java面经手册,没想到5月初我成功从我们三线的一个小公司跳槽进了腾讯,虽然等级不高,但是涨薪还…

【力扣hot100】刷题笔记Day15

前言 今天要刷的是图论,还没学过,先看看《代码随想录》这部分的基础 深搜DFS理论基础 深搜三部曲 确认递归函数、参数确认终止条件处理目前搜索节点出发的路径 代码框架 void dfs(参数) {if (终止条件) {存放结果;return;}for (选择:本节点…

Git教程-Git的基本使用

Git是一个强大的分布式版本控制系统,它不仅用于跟踪代码的变化,还能够协调多个开发者之间的工作。在软件开发过程中,Git被广泛应用于协作开发、版本管理和代码追踪等方面。以下是一个详细的Git教程,我们将深入探讨Git的基本概念和…

npm ERR! code ERESOLVE

1、问题概述? 执行npm install命令的时候报错如下: tangxiaochuntangxiaochundeMacBook-Pro stf % npm install npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resol…