Python中的os模块

news2025/6/9 13:49:03

整理文件和目录最最最常用的os模块

os模块是Python标准库中整理文件和目录最为常用的模块,该模块提供了非常丰富的方法用来处理文件和目录。

os.getcwd()

  • 作用:获取当前的工作路径;

>>> os.getcwd()
'D:\\ResearchWay\\Code\\PythonCode\\SparseEncoder\\DeepKSVD'

os.listdir(path)

  • 作用:传入任意一个path路径,返回的是该路径下所有文件和目录组成的列表;

>>> os.listdir(os.getcwd())
['DKSVD.py', 'load_model.py', 'main.py', 'mnist', 'save']

os.walk(path)

  • 含义 :传入任意一个path路径,深层次遍历指定路径下的所有子文件夹,返回的是一个由路径、文件夹列表、文件列表组成的元组。下面的代码用到了元组拆包。

元组拆包:就是将一个元组中的每个值,赋值给不同的变量;
>>> for path, dirs, files in os.walk(os.getcwd()):
...     print(path)
...     print(dirs)
...     print(files)
... prinprint("-" * 50)
...
D:\ResearchWay\Code\PythonCode\SparseEncoder\DeepKSVD
['mnist', 'save']
['DKSVD.py', 'load_model.py', 'main.py']
--------------------------------------------------
D:\ResearchWay\Code\PythonCode\SparseEncoder\DeepKSVD\mnist
['MNIST']
[]
--------------------------------------------------
D:\ResearchWay\Code\PythonCode\SparseEncoder\DeepKSVD\mnist\MNIST
['raw']
[]
--------------------------------------------------
D:\ResearchWay\Code\PythonCode\SparseEncoder\DeepKSVD\mnist\MNIST\raw
[]
['t10k-images-idx3-ubyte', 't10k-images-idx3-ubyte.gz', 't10k-labels-idx1-ubyte', 't10k-labels-idx1-ubyte.gz', 'train-images-idx3-ubyte', 'train-images-idx3-ubyte.gz', 'train-labels-idx1-ubyte', 'train-labels-idx1-ubyte.gz']
--------------------------------------------------
D:\ResearchWay\Code\PythonCode\SparseEncoder\DeepKSVD\save
[]
[]
--------------------------------------------------

os.path.exists(path)

  • 含义:传入一个path路径,判断指定路径下的目录是否存在。存在返回True,否则返回False

>>> os.path.exists("D:\ResearchWay\Code\PythonCode")
True
>>> os.path.exists("D:\ResearchWay\Code\PythonCode\nihao")
False

os.mkdir(path)

  • 含义:传入一个path路径,创建单层(单个)文件夹;

  • 注意:如果文件夹已经存在,就会报错。因此创建文件夹之前,需要使用os.path.exists(path)函数判断文件夹是否存在;

>>> if not os.path.exists(os.path.join(os.getcwd(), "hello")):
...     os.mkdir(os.path.join(os.getcwd(), "hello"))
...
>>> os.listdir()
['DKSVD.py', 'hello', 'load_model.py', 'main.py', 'mnist', 'save']

os.makedirs(path)

  • 含义:传入一个path路径,生成一个递归的文件夹;

  • 注意:如果文件夹存在,就会报错。因此创建文件夹之前,需要使用os.path.exists(path)函数判断文件夹是否存在;

>>> if not os.path.exists(os.path.join(os.getcwd(), "gaga/ga")):
...     os.makedirs(os.path.join(os.getcwd(), "gaga/ga"))
...
>>> os.listdir()
['DKSVD.py', 'gaga', 'hello', 'load_model.py', 'main.py', 'mnist', 'save']

os.rmdir(path)

传入一个path路径,删除指定路径下的文件夹;

注意: 该方法只能删除空文件夹,删除非空文件夹会报错
>>> os.rmdir(os.path.join(os.getcwd() + "/hello"))
>>> os.listdir()
['DKSVD.py', 'gaga', 'load_model.py', 'main.py', 'mnist', 'save']

os.path.join(path1, path2)

传入两个path路径,将该路径拼接起来,形成一个新的完整路径;

>>> os.path.join(os.getcwd(), "1.jpg")
'D:\\ResearchWay\\Code\\PythonCode\\SparseEncoder\\DeepKSVD\\1.jpg'
>>> os.path.join(os.getcwd(), "hello")
'D:\\ResearchWay\\Code\\PythonCode\\SparseEncoder\\DeepKSVD\\hello'

os.path.split(path)

传入一个完整的path路径,将其拆分为绝对路径和文件名两部分;

>>> os.path.split('D:\\h\\hello.jpg')
('D:\\h', 'hello.jpg')

os.path.dirname(path)

传入一个完整的文件路径,只获取其绝对路径;

>>> os.path.dirname('D:\\h\\hello.jpg')
'D:\\h'

os.path.basename(path)

传入一个完整的文件路径,只获取其文件名;

>>> os.path.basename('D:\\h\\hello.jpg')
'hello.jpg'

os.path.isdir(path)

传入一个完整的文件路径,判断它是否是文件夹;

>>> for file in os.listdir():
...     if os.path.isdir(file):
...         print(file)
...
gaga
mnist
save

os.path.isfile(path)

传入一个完整的文件路径,判断它是否是文件;

>>> for file in os.listdir():
...     if os.path.isdir(file):
...         print(file)
...
DKSVD.py
load_model.py
main.py

os.remove()

>>> os.listdir()
['DKSVD.py', 'gaga', 'load_model.py', 'main.py', 'mnist', 'readme.txt', 'save']
>>> os.remove("readme.txt")
>>> os.listdir()
['DKSVD.py', 'gaga', 'load_model.py', 'main.py', 'mnist', 'save']

os.path.sep

返回当前操作系统的路径分隔符;

>>> os.path.sep
'\\'

os.path.getsize(path)

传入一个完整的文件路径,返回该文件的大小;

>>> os.path.getsize(os.getcwd() + "/main.py")
8763

os.system()

运行shell命令。

>>> os.system('dir')
 驱动器 D 中的卷是 DATA1
 卷的序列号是 1879-0856

 D:\ResearchWay\Code\PythonCode\SparseEncoder\DeepKSVD 的目录

2022/08/29  19:12    <DIR>          .
2022/08/29  16:49    <DIR>          ..
2022/04/19  20:26             8,063 DKSVD.py
2022/08/29  16:52    <DIR>          gaga
2021/07/01  16:13             3,140 load_model.py
2022/04/19  20:33             8,763 main.py
2022/05/16  19:12    <DIR>          mnist
2022/05/16  19:13    <DIR>          save
               3 个文件         19,966 字节
               5 个目录 111,421,562,880 可用字节
0

os.path.abspath()

获得绝对路径。

>>> os.path.abspath("main.py")
'D:\\ResearchWay\\Code\\PythonCode\\SparseEncoder\\DeepKSVD\\main.py'

os.path.normpath(path)

规范path字符串形式。

>>> os.path.normpath("D::/1.doc")
'D::\\1.doc'

os.path.splitext()

分离文件名与扩展名。

>>> os.path.splitext("hsdfoihjd.docx")
('hsdfoihjd', '.docx')

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

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

相关文章

2023年浏览器哪个好,如何选择浏览器?

浏览器作为电脑必备的软件之一&#xff0c;相信绝大多数人都用过。选择一款好用的浏览器&#xff0c;可以帮助我们提升工作效率。那么&#xff0c;浏览器哪个比较好&#xff0c;我们如何选择合适的浏览器&#xff1f;为了找到集速度、易用性、安全于一身的浏览器&#xff0c;我…

第四十七章 动态规划——状态压缩模型

第四十七章 动态规划——状态压缩模型一、什么是状态压缩二、例题讲解1、AcWing 1064. 小国王&#xff08;1&#xff09;问题&#xff08;2&#xff09;思路&#xff08;3&#xff09;代码2、AcWing 327. 玉米田&#xff08;1&#xff09;问题&#xff08;2&#xff09;思路&am…

晴天科技冲刺上市:实控人丁一波系本科肄业,粤民投为其股东

近日&#xff0c;浙江晴天太阳能科技股份有限公司&#xff08;下称“晴天科技”&#xff09;预披露更新招股书&#xff0c;准备在深圳证券交易所主板上市。据贝多财经了解&#xff0c;晴天科技曾于2022年7月1日递交招股书&#xff0c;此次更新了截至2022年6月30日的财务数据等信…

AcWing 1072. 树的最长路径(DFS)

[TOC](AcWing 1072. 树的最长路径&#xff08;树形DP)) 一、题目&#xff1a; 二、思路&#xff1a; 为了方便&#xff0c;我们利用下面这个图做讲解&#xff1a; 这颗树的最长路径必定经过的是图中的点&#xff0c;因此&#xff0c;**我们可以去枚举经过图中每个点的最长路…

微星武士gf66电脑系统中途安装失败怎么办?

微星武士gf66电脑系统中途安装失败怎么办&#xff1f;有用户购买的微星武士gf66电脑想要进行电脑系统的重新安装&#xff0c;但是在新系统的安装过程中出现了错误&#xff0c;导致系统无法启动了。这个情况可以使用U盘来重装一个系统&#xff0c;恢复电脑的正常使用&#xff0c…

将springboot项目部署到linux上运行的步骤

前言&#xff1a; 博主看了许多的博客&#xff0c;总结出了最有用的部分&#xff0c;将springboot项目完整的运行在了linux虚拟机上。而不是仅仅只在网页打印一句话&#xff0c;就当做运行成功。运行成功页面如下&#xff1a; 运行成果展示&#xff1a; 接下来废话不多说&…

Python 读取大文件

读取大文件 python读取文件一般情况是利用open()函数以及read()函数来完成&#xff1a; f open(filename,r) f.read() 这种方法读取小文件&#xff0c;即读取大小远远小于内存的文件显然没有什么问题。但是如果是将一个10G大小的日志文件读取&#xff0c;即文件大小大于内存…

“深度学习”学习日记。与学习有关的技巧--正则化

2023.1.29 在机器学习的过程中&#xff0c;过拟合是一个常见的问题。过拟合指的是只能够拟合训练数据&#xff0c;但不能很好的拟合测试数据&#xff1b;机器学习的目的就是提高泛化能力&#xff0c;即便是没有包括在训练数据里的测试数据&#xff0c;也希望神经网络模型可以正…

javafx中gif 内存优化

1.背景 桌面程序对内存消耗要求很高&#xff0c;基本的要求是整个程序控制在500M以内。 这就要求每个功能点的内存消耗尽可能地少&#xff0c;大于50M的内存消耗就要想办法优化。 2.现状 gif的显示会导致程序的内存激增。以数字大脑用的雷达图动画为例进行说明&#xff0c;下…

TypeScript 学习笔记总结(一)

ts学习笔记总结。 文章目录一、什么是TypeScript&#xff1f;二、TypeScript 环境搭建三、TS 类型声明四、TS 类型详解五、TS 类型总结六、TS 编译选项1. tsconfig.json的 作用2. tsconfig.json的 配置选项013. tsconfig.json的 配置选项02七、Webpack 打包ts代码一、什么是Typ…

Bayanay:一款基于Python开发的无线网络安全研究工具

关于Bayanay Bayanay是一款基于纯Python开发的无线网络安全研究工具&#xff0c;在该工具的帮助下&#xff0c;无论你身处何地&#xff0c;都可以轻松地对周围地区的无线网络安全状况进行研究与分析。 该工具可以通过使用HTML5的地理位置定位功能并结合Scapy获取到的SSID信息…

LeetCode刷题系列 -- 25. K 个一组翻转链表

给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值&…

zabbix6,0创建监控项与触发器

zabbix_server IP : 172.31.0.5:10051 zabbix_client IP : 172.31.0.9:10050 zabbix_client已经运行了zabbix-agent,这里我用的是版本2 一、 创建监控项 1、 在客户端创建监控脚本 /etc/zabbix/zabbix_agent2.d #默认配置文件路径 2、 创建配置文件&#xff0c;编写监控脚本…

绿光GOQDs-SA氧化石墨烯量子点CdTe-FA-CS修饰CdTe-PEG-CS的制备

绿光GOQDs-SA氧化石墨烯量子点CdTe-FA-CS修饰CdTe-PEG-CS的制备今天小编分享制备GOQDs改性SA复合杂化膜&#xff0c;一起看看吧&#xff1a;GOQDs改性SA复合杂化膜的制备过程&#xff1a;将一系列不同分子量的CS及接枝壳聚糖用少量乙酸-乙酸钠溶液溶解后,加水稀释到一定浓度,用…

经典文献阅读之--FlowFormer(Transformer结构光流估计)

0. 简介 对于视觉SLAM而言&#xff0c;除了使用特征点法来完成VIO以外&#xff0c;还可以使用光流法来完成VIO的估计。而传统的光流法受环境&#xff0c;光照变化严重&#xff0c;所以有时候会出现光流偏差等问题。所以现在有越来越多的工作朝着深度学习的方向扩展&#xff0c…

卷积神经网络中的Conv层和BN层融合细节

BN层 批归一化层&#xff08;Batch Normallization&#xff09;是一种在卷积神经网络模型中大量使用&#xff0c;为了加速模型收敛的技术。为什么CNN 中引入 BN 层可以加速网络的收敛呢&#xff1f;因为将输入的样本数据或特征图&#xff0c;归一化后&#xff0c;改善了输入数…

智云通CRM:如何在初次见面识别客户机会?

有一次&#xff0c;我给一家公司做CRM系统培训之后&#xff0c;他们公司的老总请我吃饭。那是我们第一次见面&#xff0c;在饭桌上&#xff0c;我和他聊天&#xff0c;说&#xff1a;“洛老师&#xff0c;你们的CRM系统功能真的很不错&#xff0c;帮我我解决了很多销售管理上的…

设计模式面试题 一

第一题&#xff1a;阐述设计模式的责任链&#xff1f; 责任链模式定义&#xff1a; 使多个对象都有机会处理请求&#xff0c;从而避免请求的发送 者和接收者之间的耦合关系。将这些对象连成一条链&#xff0c;并沿着这条链传递该请求&#xff0c;直到有一 个对象处理它为止。 …

Ruoyi-Cloud框架学习-【03 后端启动 + 前端启动】

打开运行基础模块&#xff08;启动没有先后顺序&#xff09; 记得在后台先启动Redis,不然会报错 RuoYiGatewayApplication &#xff08;网关模块 必须&#xff09; &#xff1a; 即前端所有访问需要通过网关而不是直接访问具体接口、网关会对后台的微服务进行转发 RuoYiAuth…

虹科回顾 | 虹科云科技2022年深度好文

2022年&#xff0c;我们一起学习了很多技术文章、优秀案例 我们的关键词是 数据库、BI、文件存储、高性能计算、数据管理、IT 下面一起来回顾虹科云科技过去一年的深度好文吧! 2022虹科云科技深度好文回顾 点击文字均可跳转到相关文章 数据库系列 ● 虹科产品 | 一文详解…