Python常用标准库-os库一文详解(一):目录操作

news/2024/4/29 22:10:12/文章来源:https://blog.csdn.net/master_hunter/article/details/129288543

目录

前言

目录操作

1.1获取当前目录

获取当前工作目录(绝对路径)

 获取当前工作目录(绝对路径)

 获取当前目录

 获取当前目录的上级目录

 1.2创建目录

 1.3删除目录

 1.4重命名目录

 1.5切换目录

 1.6获取目录下的文件内容

 1.7判断目录是否存在

 1.8判断是否是目录

 1.9判断是否是绝对路径


前言

Python的os(Operating System)库是一个用于与操作系统进行交互的标准库,它提供了许多有用的函数和变量,用于访问文件系统、环境变量、进程、管道、用户和组等操作系统相关的功能。

这里我为大家总结了所有OS库里面的各类功能常用函数:

有这张思维导图基本就够了,基本涵盖所有涉及到的Python基础系统路径操作功能函数了。当然还有很多关于这些函数细节的,需要辅以实际代码展示例子,以更直观的看到每个函数该如何使用和操作。


 

目录操作

1.1获取当前目录

获取当前工作目录(绝对路径)

print(os.getcwd())

 

 获取当前工作目录(绝对路径)

值以Unicode编码返回:

print(os.getcwdb())

 

 获取当前目录

以 "."表示

print(os.curdir)

 

 获取当前目录的上级目录

以 ".."表示

print(os.pardir)

 

 1.2创建目录

创建目录, 路径可以是绝对路径也可以是相对路径, linux系统运行的程序还需指定mode参数,即文件夹的权限。文件目录存在时,再次创建会执行报错,因此实际开发中创建目录需判断目录是否存在。

import os
if os.path.lexists('./test'): print("./test已经存在")
else:os.mkdir('./test')

 

 递归创建目录:

if os.path.lexists("C:\\Users\\10799\\get_info\\OS\\test\\12\\123"):pass
else:os.makedirs('test\\12\\123')

 

 1.3删除目录

目录不存在时报错,删除时判断目录是否存在

if os.path.lexists('test1'):os.rmdir('test1')
else:print("test1目录不存在")

 非空目录报错,删除时 先判断是否是空目录,在进行删除

if os.path.lexists('test'):os.rmdir('test') 
else:print("test目录不存在")

 

 先判断目录是否存在 ,再判断目录是否非空目录,再进行相应的操作

if os.path.lexists('test'):if os.listdir('test'):print("test目录非空")else:os.rmdir('test')
else:print("test目录不存在")

 删除多个目录,目录非空时报错。

#删除多个目录,目录非空时报错,
if os.path.lexists('test'):os.removedirs(r'./test/12/123')
else:print("test目录不存在")

 1.4重命名目录

语法格式 os.rename('oldName', 'newName'),原目录不存在时报错

if os.path.lexists('test'):os.rename('test', 'newTest')
else:print('test目录不存在')

 

 1.5切换目录

变更工作目录,从根目录起始的文件路径称之为绝对路径,根据当前位置起始的路径称之为相对路径。

绝对路径:

# 绝对路径
os.chdir(r"D:\python")

 1.6获取目录下的文件内容

获取指定目录下的文件夹和文件的名称;只会查找指定目录的当前目录下的文件名和文件夹名称,不会查找下级的文件名和文件夹名称。

默认当前目录:

print(os.listdir())

 

 指定目录:

print(os.listdir(r'C:\Users\10799\get_info\OS'))

 

 文件不存在时报错,使用时先判断目录是否存在

if os.path.lexists(r"C:\Users\10799\get_info\OS"):print(os.listdir(r"C:\Users\10799\get_info\OS"))
else:print("指定的目录不存在")

 1.7判断目录是否存在

print(os.path.lexists(r"C:\Users\10799\get_info\OS"))

 

 

 1.8判断是否是目录

目录不存在和非目录都返回False:

print(os.path.isdir(r'newTest'))

 

 1.9判断是否是绝对路径

os.path.isabs(r"C:\Users\10799\get_info\OS\oldTest")

 


 

点关注,防走丢,如有纰漏之处,请留言指教,非常感谢

以上就是本期全部内容。我是fanstuck ,有问题大家随时留言讨论 ,我们下期见。

 

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

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

相关文章

如何成为一款好的低代码平台?

目录 一、一款好的低代码平台应该是什么样的? 二、低代码核心能力 01、全栈可视化编程: 02、全生命周期管理: 03、低代码扩展能力: 三、小结 一、一款好的低代码平台应该是什么样的? 从企业角度来说&#xff0c…

(五十六)针对主键之外的字段建立的二级索引,又是如何运作的?

上一次我们已经给大家彻底讲透了聚簇索引这个东西,其实聚簇索引就是innodb存储引擎默认给我们创建的一套基于主键的索引结构,而且我们表里的数据就是直接放在聚簇索引里的,作为叶子节点的数据页,如下图。 而且我们现在也对基于主键…

物理机不能访问虚拟机kali的web服务解决方案记录

目录 环境 问题描述 解决方案 知识补充 效果测试 其他思路 环境 kali(nat模式),物理机,可互ping 问题描述 kali的web服务器不能在物理机上访问。 1.本机能ping通虚拟机 2.虚拟机也能ping通本机 3.虚拟机能访问自己的web …

开源的 OA 办公系统 — 勾股 OA 4.3.01 发布

勾股 OA 办公系统是一款简单实用的开源的企业办公系统。系统集成了系统设置、人事管理、行政管理、消息管理、企业公告、知识库、审批流程设置、办公审批、日常办公、财务管理、客户管理、合同管理、项目管理、任务管理等功能模块。系统简约,易于功能扩展&#xff0…

Python抓取数据具体流程

之前看了一段有关爬虫的网课深有启发,于是自己也尝试着如如何过去爬虫百科“python”词条等相关页面的整个过程记录下来,方便后期其他人一起来学习。 抓取策略 确定目标:重要的是先确定需要抓取的网站具体的那些部分,下面实例是…

tensorflow1.14.0安装教程--保姆级

//方法不止一种,下面仅展示一种。 注:本人电脑为win11,anaconda的python版本为3.9,但tensorflow需要python版本为3.7,所以下面主要阐述将python版本改为3.7后的安装过程以及常遇到的问题。 1.首先电脑安装好anaconda…

从安卓系统USB升级包里提取system.img、boot.img和recovery.img在内的镜像文件

1.前言 如果你拿到一个USB升级包,你会发现升级包的结构基本相似。 但是里面并不是直接就有包括system.img、boot.img和recovery.img在内的镜像文件。 如果我们需要在Android手机上获取Magisk。提取内核(boot.img)就至关重要。当然其他镜像根…

玩转qsort——“C”

各位CSDN的uu们你们好呀,今天小雅兰的内容还是我们的深度剖析指针呀,上篇博客我们学习了回调函数这个知识点,但是没有写完,因为:小雅兰觉得qsort值得单独写出来!!!好啦,就…

java异常分类和finally代码块中return语句的影响

首先看一下java中异常相关类的继承关系: 引用 1、分类 异常可以分为受查异常和非受查异常,Error和RuntimeException及其所有的子类都是非受查异常,其他的是受查异常。 两者的区别主要在: 受检的异常是由编译器(编译…

小家电品牌私域增长解决方案来了

小家电品牌的私域优势 01、行业线上化发展程度高 相对于大家电动辄上千上万元的价格,小家电的客单价较低。而且与大家电偏刚需属性不同的是,小家电的消费需求侧重场景化,用户希望通过购买小家电来提高自身的生活品质。这就决定了用户的决策…

工作中责任链模式用法及其使用场景?

前言 笔者是金融保险行业,有这么一种场景,业务员录完单后提交核保,这时候系统会对保单数据进行校验,如不允许手续费超限校验,客户真实性校验、费率限额校验等等,当校验一多时,维护起来特别麻烦…

预览版Edge申请微软new Bing失败解决方案

文章目录1.首先需要配置科学上网2.下载预览版Edge浏览器卡它bug!卡它bug!卡它bug!没有申请上ChatGPT的朋友们,试试new Bing吧,更新更强大,关于申请方式,网上已经有很多帖子了,其中一…

软件自动化测试工程师面试题集锦

以下是部分面试题目和我的个人回答,回答比较简略,仅供参考。不对之处请指出 1.自我介绍 答:姓名,学历专业,技能,近期工作经历等,可以引导到最擅长的点,比如说代码或者项目 参考&a…

SpringBoot入门 - SpringBoot HelloWorld

我们了解了SpringBoot和SpringFramework的关系之后,我们可以开始创建一个Hello World级别的项目了。创建 SpringBoot Web 应用为快速进行开发,推荐你使用IDEA这类开发工具,它将大大提升你学习和开发的效率。选择 Spring InitializeSpring提供…

Spring 事务(编程式事务、声明式事务@Transactional、事务隔离级别、事务传播机制)

文章目录1. 事务的定义2. Spring 中事务的实现2.1 MySQL 中使用事务2.2 Spring 中编程式事务的实现2.3 Spring 中声明式事务2.3.1 声明式事务的实现 Transactional2.3.2 Transactional 作用域2.3.3Transactional 参数设置2.3.4 Transactional 异常情况2.3.5 Transactional 工作…

一文读懂PaddleSpeech中英混合语音识别技术

语音识别技术能够让计算机理解人类的语音,从而支持多种语音交互的场景,如手机应用、人车协同、机器人对话、语音转写等。然而,在这些场景中,语音识别的输入并不总是单一的语言,有时会出现多语言混合的情况。例如&#…

ClickHouse进阶篇-多表连接物化视图

简介 在写这篇文章的时候doris 1.2 的物化视图只是支持单表建立物化视图,现在说下ClickHouse多表的物化视图。 前言 本文翻译自 Altinity 针对 ClickHouse 的系列技术文章。面向联机分析处理(OLAP)的开源分析引擎 ClickHouse,因…

全面了解 B 端产品设计 — 基础扫盲篇

在今天,互联网的影响力与作用与日俱增,除了我们日常生活领域的改变以外,对于商业领域的渗透也见效颇丰。 越来越多的企业开始使用数字化的解决方案来助力企业发展,包括日常管理、运营、统计等等。或者通过互联网的方式开发出新的业务形态,进行产业升级,如这几年风头正劲的…

ReentrantLock详说

目录 尝试加锁 如果加锁不成功 重点 尝试加锁 最外层lock方法 ReentrantLock.class public void lock() {sync.lock();} 进来发现是个抽象方法 abstract static class Sync extends AbstractQueuedSynchronizer abstract void lock(); 底下有两个实现类,一个…

Zookeeper3.5.7版本——Zookeeper的概述、工作机制、特点、数据结构及应用场景

目录一、Zookeeper的概述二、Zookeeper的工作机制三、Zookeeper的特点四、Zookeeper的数据结构五、Zookeeper的应用场景5.1、统一命名服务5.2、统一配置管理5.3、统一集群管理5.4、服务器动态上下线5.5、软负载均衡一、Zookeeper的概述 Zookeeper 是一个开源的分布式的&#x…