python应用-os库操作目录

news2024/11/17 19:39:44

python自带的os模块提供了许多与操作系统交互的函数,适配多种操作系统,比如windows,mac,linux等,比如常用路径操作、进程管理、环境参数等都可通过os模块实现。

以下是自带的os.py中的前面一部分代码。

  • 第一个红框中主要说明如下:

—— os.name为'posix'或'nt'

—— os.curdir是一个表示当前目录的字符串(总是'.')

—— os.pardir是一个表示父目录的字符串(总是'..')

—— os.sep是路径分隔符('/'或'\\')

—— os.extsep是扩展分隔符(总是'.')

—— os.altsep是备用路径名分隔符(None或'/')

—— os.pathsep是$PATH等中使用的组件分隔符

—— os.linesep是文本文件中的行分隔符('\r'或'\n'或'\r\n')

—— os.defpath为可执行文件的默认搜索路径

—— os.devnull为空设备的文件路径('/dev/null'等)

其中os.name意味着操作系统类型,'posix'指的是类Unix操作系统,如Linux和Mac OS,而'nt'则指的是Windows。

  • 第二个红框是当通过from os import *导入时只导入__all__中包括的功能。

目录操作

os.getcwd()获取当前程序文件所在目录

print(os.getcwd())

os.mkdir()创建目录

用于新建文件夹,当文件夹存在时会报错,而且不能创建多层目录

在mac桌面上创建目录1,执行成功

os.mkdir('/Users/htsc/Desktop/dir1')

但如果想创建多层目录,比如在dir1下接着创建dir2,然后在dir2下创建dir3,此时会报错。

os.mkdir('/Users/htsc/Desktop/dir1/dir2/dir3')

os.makedirs()创建多层目录

用于新建文件夹,当文件夹存在时会报错,能创建多层目录

os.makedirs('/Users/htsc/Desktop/dir1/dir2/dir3')

os.rmdir()删除空目录

以下执行会删除最后一层dir3目录,但是dir3目录如果不为空,则会报错。

os.rmdir('/Users/htsc/Desktop/dir1/dir2/dir3')

os.removedirs()递归删除多层空目录

以下执行会依次删除dir3/dir2/dir1目录,但是某个目录如果不为空,则会报错。

os.removedirs('/Users/htsc/Desktop/dir1/dir2/dir3')

如果想删除非空目录,可以使用shutil.rmtree()函数

import shutil
shutil.rmtree("/Users/htsc/Desktop/dir1/dir2/dir3'")

os.chdir()改变当前目录。

print(os.getcwd())
os.chdir("/Users/htsc")
print(os.getcwd())
结果:当前目录被修改
/Users/htsc/Desktop
/Users/htsc

os.rename(src, dst):重命名一个目录或文件。

os.rename('/Users/htsc/Desktop/dir1/dir2','/Users/htsc/Desktop/dir1/dir4')

os.listdir(path):列出指定目录下的所有文件和子目录。

print(os.listdir(path='/Users/htsc/Desktop'))

os.stat(path):获取文件或目录的状态。

print(os.stat('/Users/htsc/Desktop'))
打印结果:
os.stat_result(st_mode=16832, st_ino=245263, st_dev=16777234, 
               st_nlink=15, st_uid=501, st_gid=20, st_size=480,
               st_atime=1713104547, 
               st_mtime=1713104547, st_ctime=1713104547)

os.walk(path):递归地查找文件夹树,yield每个文件夹路径,所有的子文件夹名和所有的文件名。(返回一个生成器)

for path,sub_folder_names,file_names in os.walk('/Users/htsc/Desktop/dir1'):
  print(path)
  print(sub_folder_names)
  print(file_names)

文件夹如果比较复杂打印看上去会很乱,大家可以依次打印或者找一个小层级的目录试下。

共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”

-----指水滴不断地滴,可以滴穿石头;

-----比喻坚持不懈,集细微的力量也能成就难能的功劳。

----感谢读者的阅读和学习,谢谢大家。

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

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

相关文章

asp.net core 网页接入微信扫码登录

创建微信开放平台账号&#xff0c;然后创建网页应用 获取appid和appsecret 前端使用的vue&#xff0c;安装插件vue-wxlogin 调用代码 <wxlogin :appid"appId" :scope"scope" :redirect_uri"redirect_uri"></wxlogin> <scri…

Qt快速入门(Opencv小案例之人脸识别)

Qt快速入门&#xff08;Opencv小案例之人脸识别&#xff09; 编译出错记录 背景 因为主要使用qt&#xff0c;并且官网下载的win版本的编译好的opencv默认是vc的&#xff0c;所以我们需要自己下载opencv的源码使用mingw自行编译&#xff0c;我直接使用的vscode。 报错 报错…

LabVIEW直流稳定电源自动化校准系统

LabVIEW直流稳定电源自动化校准系统 直流稳定电源正向着智能化、高精度、多通道、宽量程的方向发展。基于LabVIEW开发环境&#xff0c;设计并实现了一种直流稳定电源自动化校准系统&#xff0c;以提升校准过程的整体效能&#xff0c;实现自动化设备替代人工进行电源校准工作。…

YOLOv8 测试 5:Linux 中 Docker 部署 YOLOv8,Python 封装 API 接口,base64 图片处理

一、前言 记录时间 [2024-4-14] 系列文章简摘&#xff1a; Docker 学习笔记&#xff08;二&#xff09;&#xff1a;在 Linux 中部署 Docker&#xff08;Centos7 下安装 docker、环境配置&#xff0c;以及镜像简单使用&#xff09; API 接口简单使用&#xff08;二&#xff09;…

对常见FTP客户端/服务器的调查与分析

前言 主要是想看看常见的服务器和客户端是如何实现协议中要求的功能的&#xff0c;。 比如RF959要求的记录结构&#xff08;Record Structure&#xff09;、页结构&#xff08;Page Structure&#xff09;、Block Mode、Compress Mode&#xff0c;看起来就很抽象。 实测发现…

springBoot+vue编程中使用mybatis-plus遇到的问题

mybatis-plus中遇到的问题Code Companion Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)…

专题十三、预处理器

预处理器 1. 预处理器的工作原理2. 预处理指令3. 宏定义3.1 简单的宏3.2 带参数的宏3.3 # 运算符3.4 ## 运算符3.5 宏的通用属性3.6 宏定义中的圆括号3.7 创建较长的宏3.8 预定义宏3.9 C99 中新增的预定义宏3.10 空的宏参数3.11 参数个数可变的宏3.12 __func__ 标识符 4. 条件编…

SMS垃圾短信识别项目

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; 项目背景 随着数字通信的快速发展&#xff0c;垃圾短信成为了一个普遍而烦人的问题。这些不请自来的消息不仅打扰了我们的日常生活&#xff0c;…

嵌入式单片机 TTL电平、232电平、485电平的区别和联系

一、简介 TTL、232和485是常见的串口通信标准&#xff0c;它们在电平和通信方式上有所不同&#xff0c; ①一般情况下TTL电平应用于单片机外设&#xff0c;属于MCU/CPU等片外外设&#xff1b; ②232/485电平应用于产品整体对外的接口&#xff0c;一般是片外TTL串口转232/485…

React 19 的新增功能:Action Hooks

React 是前端开发领域最流行的框架之一。我喜欢 React 是因为它背后的团队和社区对它的热情。当社区提出新功能和改进的需求时&#xff0c;团队会倾听&#xff0c;React 的未来是令人兴奋和有趣的。 让我们来看一下 React 19 中令开发人员提升开发效率的新特性。对于每个钩子&…

内网渗透系列-mimikatz的使用以及后门植入

内网渗透系列-mimikatz的使用以及后门植入 文章目录 内网渗透系列-mimikatz的使用以及后门植入前言mimikatz的使用后门植入 msf永久后门植入 &#xff08;1&#xff09;Meterpreter后门&#xff1a;Metsvc&#xff08;2&#xff09;Meterpreter后门&#xff1a;Persistence NC后…

Matlab隐式方程拟合【案例源码+视频教程】|隐函数拟合|非线性拟合|视频教程

专栏导读 作者简介&#xff1a;工学博士&#xff0c;高级工程师&#xff0c;专注于工业软件算法研究本文已收录于专栏&#xff1a;《复杂函数拟合案例分享》本专栏旨在提供 1.以案例的形式讲解各类复杂函数拟合的程序实现方法&#xff0c;并提供所有案例完整源码&#xff1b;2.…

Zookeeper和Kafka的部署

目录 一、Zookeeper的基本概念 1. Zookeeper定义 2. Zookeeper工作机制 3. Zookeeper特点 4. Zookeeper数据结构 5. Zookeeper应用场景 5.1 统一命名服务 5.2 统一配置管理 5.3 统一集群管理 5.4 服务器动态上下线 5.5 软负载均衡 6. Zookeeper 选举机制 6.1 第一…

深入解析Tomcat的工作流程

tomcat解析 Tomcat是一个广泛使用的开源Servlet容器&#xff0c;用于托管Java Web应用程序。理解Tomcat的工作流程对于开发人员和系统管理员来说是非常重要的。本文将深入探讨Tomcat的工作原理&#xff0c;包括请求处理、线程池管理、类加载、以及与Web服务器之间的通信。 ###…

【NOI】C++程序设计入门五

文章目录 前言一、两数交换1.概念2.样例3.交换方法3.1 方法一&#xff1a;请个临时工3.2 方法二&#xff1a;加法交换律3.3 方法三&#xff1a;swap函数 4.小结 二、拆位求解1.概念2.用法 三、样题讲解问题&#xff1a;1605. 求一个两位数的个位和十位的和问题&#xff1a;1606…

[图像处理] MFC OnMouseMove()绘制ROI矩形时的闪烁问题

文章目录 问题对策代码完整工程 结果使用Picture控件的RedrawWindow()的效果使用Dialog的RedrawWindow()的效果使用Picture控件的RedrawWindow()&#xff0c;ROI绘制到图像外的效果 结论 问题 最近想通过业余时间&#xff0c;写一个简单的图像处理软件&#xff0c;一点点学习图…

基于表面势的增强型p-GaN HEMT器件模型

来源&#xff1a;电子学报 22年 摘要 为了满足功率电路及系统设计对p-GaN HEMT&#xff08;High Electron Mobility Transistor&#xff09;器件模型的需求&#xff0c;本文建立了一套基于表面势计算方法的增强型p-GaN HEMT器件SPICE&#xff08;Simulation Program with Int…

Ceph [OSDI‘06]论文阅读笔记

原论文&#xff1a;Ceph: A Scalable, High-Performance Distributed File System (OSDI’06) Ceph简介及关键技术要点 Ceph是一个高性能、可扩展的分布式文件系统&#xff0c;旨在提供出色的性能、可靠性和可扩展性。为了最大化数据和元数据管理的分离&#xff0c;它使用了一…

信息系统项目管理师0051:管理基础(4信息系统管理—4.1管理方法—4.1.1管理基础)

点击查看专栏目录 文章目录 第四章 信息系统管理4.1管理方法4.1.1管理基础1.层次结构2.系统管理第四章 信息系统管理 在信息技术和数据资源要素的推动下,社会各领域已经并正在加速进入数字化的全新发展时期,基于智能、网络和大数据的新经济业态正在形成,从“数字融合”向“数…

Linux(Ubuntu) 查看并删除使用【dpkg】安装的软件【mysql 8.3安装失败---原因调查】

目录 ■前言 ■查看安装的软件 ■删除安装的软件 正常删除&#xff08;dpkg -r xxxxName&#xff09; 问题解决&#xff1a;use --purge to remove them too ■其他调查信息 命令 图片1 图片2 图片3 图片4 ■前言 安装Mysql8.3失败 我的服务器-CSDN博客 ■查看安…