Python学习-----模块5.0(文件管理大师-->os模块)

news2024/11/18 3:40:32

目录

前言:

1.os.getcwd() 

2. os.listdir(path) 

3.os.walk(path) 

4.os.path.exists(path)

5.os.mkdir(path) 

6.os.makedirs(path,exist_ok=True)

7.os.rmdir(path)

8.os.remove(path)

9.os.path.join(p1,p2)

10.os.path.split(path)

11.os.path.isdir(path)

12.os.path.isfile(path)

13.os.path.getsize(path)


前言:

        在Python中有一个os模块,这个模块提供了非常多文件管理的方法,我们可以去调用os模块这些函数方法可以去实现相关的文件操作,例如:文件的增加、删除、修改、查询等等……。这里我会详细介绍os模块中比较常用到的方法。

 导入模块

import os

1.os.getcwd() 

作用:获取当前工作路径

import os
#获取当前工作文件的路径
print(os.getcwd())
#输出结果:F:\Python\py1

2. os.listdir(path) 

作用:传入一个路径,然后输出这个路径下文件夹的目录,然后返回一个列表

 就以这个目录为例子吧

import os
path="F:\Python\py1"
print(os.listdir(path))
#输出结果:['123', '12月29日.mp3', '3.p.py', 'kk.json', 'os sys模块.py', '排序.py', '文件操作.py', '时间模块.py']

3.os.walk(path) 

作用:传入一个路径(这个是一个文件夹),然后依次遍历这个文件夹里面的内容,然后返回一个生成器,我们可以去用循环来遍历这个生成器,其输出结果是元组形式(这个过程也叫作元组拆包)

import os
path='F:\Python\py1'
print(type(os.walk(path)))
for dir in os.walk(path):
    print(dir)
#输出结果:
#<class 'generator'>
#('F:\\Python\\py1', ['123'], ['12月29日.mp3', '3.p.py', 'kk.json', 'os sys模块.py', '排#序.py', '文件操作.py', '时间模块.py'])
#('F:\\Python\\py1\\123', [], [])

4.os.path.exists(path)

作用:判断这个路径是否存在,返回一个布尔变量,存在就True, 不存在就False

import os
print(os.path.exists(r"F:\Python\项目ATM\core\src.py"))
print(os.path.exists(r'f:qq'))
#输出结果:True
#         False

5.os.mkdir(path) 

作用:传入一个path(文件路径),然后在这个路径下创建一个文件夹

注意:如果这个文件是存在的话,会创建失败报错,所以在创建之前要用os.path.exists去判断这个路径是否存在

import os
path=r"F:\Python\py1\123"
if not os.path.exists(path):
    os.mkdir(path) #创建一个名字叫做123的文件夹

结果:

 可以看出这里多了一个名字叫做123的文件夹

6.os.makedirs(path,exist_ok=True)

 作用:传入一个path路径,可以递归创建多个文件夹,同时相较于os.mkdir(path) 方法,这个方式功能更加多,第一可以一次性创建多个文件夹,第二是可以通过exist_ok这个参数去判断这个文件夹是否存在,如果不存在就创建,存在就不创建(不需要调用os.path.exists(path)这个方法来去判断),这样就不会出现报错的情况

import os
os.makedirs(os.getcwd()+r'\666',exist_ok=True) #创建一个名字为666的文件夹

结果:

可以看见,当前目录下多了一个名字为666的文件夹

7.os.rmdir(path)

作用:这个方法可以实现文件夹的删除,跟os.mkdir 方法是相反的

注意:这个方法只能删除一个空的文件夹(当然这个文件夹也是得存在的,不然会报错),也就是说这个文件夹里面不能有任何对象,否则会报错

import os
os.rmdir(r"F:\Python\py1\666")

结果就是刚刚创建名字为666的空文件夹被删除了

8.os.remove(path)

作用:这个方法可以把path路径下的文件删除

注意:删除的只能是一个文件,比如:.txt、.jpg、.json等等,不能是文件夹,否则会报错

当前文件目录:

import os
path=os.getcwd()+r'\kk.json'
os.remove(path)

结果就是这个json文件被删除了

9.os.path.join(p1,p2)

作用:这个方法可以实现这两个路径p1、p2组装为一个完整的新路径,最后返回这个新路径

注意:这个方法只是组装生成一个新的路径,而不是创建一个文件!!!

import os
p1=os.getcwd()
p2=['1.txt','2.txt','3.txt']
for i in p2:
    new_payh=os.path.join(p1,i)
    print(new_payh)
#输出结果:
# F:\Python\py1\1.txt
# F:\Python\py1\2.txt
# F:\Python\py1\3.txt

10.os.path.split(path)

作用:这个方法跟上面os.path.join(p1,p2)方法是相反的,这个方法是把一个完整的路径切分为绝对路径和相对路径,以元组的形式返回

import os
path=r"F:\Python\py1\2.txt"
x=os.path.split(path)
print(x,type(x))
#输出结果:('F:\\Python\\py1', '2.txt') <class 'tuple'>

11.os.path.isdir(path)

作用:这个方法可以判断这个路径path下是不是一个文件夹,返回一个布尔类型,是文件夹就返回True,反正返回False

当前目录:

import os
a=os.path.isdir('F:\\Python\\py1\\3.p.py')
b=os.path.isdir('F:\\Python\\py1\\520')
print(a,b)
#输出结果:False True

12.os.path.isfile(path)

作用:传入一个路径,判断这个路径下是不是一个文件(不是文件夹),返回布尔变量(同上)

import os
a=os.path.isfile('F:\\Python\\py1\\3.p.py')
b=os.path.isfile('F:\\Python\\py1\\520')
print(a,b)
#输出结果:True False

13.os.path.getsize(path)

作用:获取这个文件的大小(字节) ,返回数值

import os
size=os.path.getsize(os.getcwd())
print(size)
#输出结果:4096

ok,这一期就到这里了,感谢各位的支持~

分享一张壁纸 

 

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

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

相关文章

【python】类的详解

注&#xff1a;最后有面试挑战&#xff0c;看看自己掌握了吗 文章目录PO verses OOPOOO当一个类很复杂的时候&#xff0c;考虑多弄一个类的改造私有类的模块化静态类verses动态类动态类查看模块源代码对象机制的基石 PyObjectPO verses OO PO PO耦合性高&#xff0c;很多过程…

手写Android性能监测工具,支持Fps/流量/内存/启动等

App性能如何量化:如何衡量一个APP性能好坏&#xff1f;直观感受就是&#xff1a;启动快、流畅、不闪退、耗电少等感官指标&#xff0c;反应到技术层面包装下就是&#xff1a;FPS&#xff08;帧率&#xff09;、界面渲染速度、Crash率、网络、CPU使用率、电量损耗速度等&#xf…

Linux命令之awk

awk是一个有强大的文本格式化能力的linux命令&#xff0c;早期是在Unix上实现的&#xff0c;linux后来也可以使用了&#xff0c;我们在Linux上使用的awk是gawk&#xff08;GNU awk的意思&#xff09; 语法 awk [option] 模式{动作} file option表示awk的可选参数&#xff0c;可…

mybatis与jpa

1、官方文档 mybatis&#xff1a;mybatis-spring – jpa&#xff1a;https://springdoc.cn/spring-data-jpa/ 应用文档 jpa详解_java菜鸟1的博客-CSDN博客 JPA简介及其使用详解_Tourist-xl的博客-CSDN博客_jpa的作用 2、使用比较 mybatis一般用于互联网性质的项目&#x…

zabbix4.0 Web页面配置 - 聚合图形的实现

目录 1、主机组Host groups配置 创建主机组 ​编辑 将一个主机添加至刚才创建的主机里面 2、用户参数UserParameter设置 示例&#xff1a; 添加一个参数&#xff1a;show.host.messages 模拟zabbix模板里面的参数再添加一个userparameter 3、触发器设置 示例&#xff1a; …

浏览器缓存之强缓存和协商缓存

为什么需要缓存? - 缓存的优点: 1.减少对服务器的访问次数,减轻了服务器的压力 2.节省用户网络带宽(就是省钱,带宽都是按流量算钱的) 3.从缓存读取更匀速减少等待优化了用户体验 - 缓存的缺点 资源被缓存后用户不能及时获取不到最新的资源,所以缓存不能乱用 强缓存 涉…

TypeScript快速上手语法+结合vue3用法

TypeScript快速上手语法结合vue3用法 前言&#xff1a; 本篇内容不涉及TypeScript安装以及配置&#xff0c;具体安装及配置篇可以看下面目录&#xff0c;本篇只涉及TypeScript语法相关内容&#xff0c;及结合vue3的用法。不讲废话&#xff0c;简单直接直接开撸。 目录 Type…

理想汽车--笔试(算法)

笔试分为选择题和编程题&#xff0c;选择题考的很全面&#xff0c;包括概率论、数据库、机器学习、python、数据结构。 选择题 1.在某些规划的分类器中&#xff0c;依据规划质量的某种度量对规划排序&#xff0c;保证每一个测试记录都是由覆盖它的‘最好的’规格来分类&#…

LeetCode-54. 螺旋矩阵

题目来源 54. 螺旋矩阵 题目思路 while循环只遍历"环"&#xff0c;不成环就不遍历了 四个边界 上边界 top : 0下边界 bottom : matrix.length - 1左边界 left : 0右边界 right : matrix[0].length - 1 矩阵不一定是方阵 top < bottom && left < r…

使用git从github.com中clone一个项目的源代码---git与github的安装配置与使用入门

本文目录git简介github简介git的安装github的配置1&#xff0c;注册github帐号2&#xff0c;登录github3&#xff0c;配置git4&#xff0c;生成密钥5&#xff0c;在github中添加密钥6&#xff0c;使用git从github.com中clone一个项目的源代码git简介 Git是一个开源的版本控制管…

Java知识复习(六)常见的设计模式(单例、原型、工厂)

前言 发现无论是什么设计模式&#xff0c;其实总的原则就是减少耦合&#xff0c;增加可复用代码&#xff0c;使系统更易于扩展 参考书籍&#xff1a;《秒懂设计模式》 1、单例模式&#xff08;Singleton&#xff09; 单例模式&#xff1a;即单一的实例&#xff0c;同时提供几…

【java web篇】项目管理构建工具Maven简介以及安装配置

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…

【离线数仓-8-数据仓库开发DWD层-交易域相关事实表】

离线数仓-8-数据仓库开发DWD层-交易域相关事实表离线数仓-8-数据仓库开发DWD层-交易域相关事实表一、DWD层设计要点二、交易域相关事实表1.交易域加购事务事实表1.加购事务事实表 前期梳理2.加购事务事实表 DDL表设计分析3.加购事务事实表 加载数据分析1.首日全量加购的数据加载…

基于APRX并行架构的高速QPSK解调实现(Matlab仿真篇)

由于QPSK系统下变频之后的信号中频为720MHz,信息符号速率为500Mbps,因此,采用传统的串行解调方案已无法在FPGA中实现解调。因此,本方案采用基于APRX并行架构实现对高速率的QPSK解调。如图1所示,为并行全数字QPSK接收机实现架构。 图1 并行全数字QPSK接收机实现架构 1 高速…

Golang 接口笔记

基本介绍接口是一个数据类型&#xff0c;可以定义一组方法&#xff0c;但都不需要实现。并且interface中不能包含任何变量。到某个自定义类型要使用的时候&#xff0c;再根据具体情况把这些方法实现出来语法type 接口名 interface {method1(参数列表) 返回值列表method2(参数列…

UG NX二次开发(C#)-CAM-点击插件自动进入CAM模块

文章目录 1、前言2、调用CAM模块错误2、进入加工模块1、前言 UG NX软件中CAM模块作为一个很重要的,也是其特别亮点的功能模块,能实现车、铣、磨、钻等加工工艺编程,但是由于其是通用性比较强,对于专业上的可能不能完全满足要求,这就要求我们在CAM模块下进行二次开发。我们…

操作系统核心知识点整理--进程篇

操作系统核心知识点整理--进程篇什么是系统调用进程篇什么是进程什么是线程从一次fork调用看linux进程和线程的本质区别小结用户级线程和内核级线程的区别进程的状态进程的切换进程调度并发问题死锁参考本文主要面向应用层软件开发人员整理一篇必须了解的操作系统核心知识图谱&…

maya多边形顶点变形批量传递方法

一、问题描述 做项目时&#xff0c;对于重复更改相同模型的顶点位置需要大量重复操作&#xff0c;maya默认提供了多边形属性传递的方法&#xff0c;如下图&#xff1a; 但一次只能执行一次&#xff0c;并且带有大量历史节点&#xff0c;此方式的好处是&#xff0c;可以实现实…

《零成本实现Web自动化测试--基于Selenium》 Selenium-RC

一. 简介 Selenium-RC可以适应更复杂的自动化测试需求&#xff0c;而不仅仅是简单的浏览器操作和线性执行。Selenium-RC能够充分利用编程语言来构建更复杂的自动化测试案例&#xff0c;例如读写文件、查询数据库和E-mail邮寄测试报告。 当测试案例遇到selenium-IDE不支持的逻辑…

python的所有知识点+代码+注释,不看就亏死了

目录 简介 特点 搭建开发环境 版本 hello world 注释 文件类型 变量 常量 数据类型 运算符和表达式 控制语句 数组相关 函数相关 字符串相关 文件处理 对象和类&#xff0c;注&#xff1a;不是那个对象&#xff01;&#xff01;&#xff01;&#xff01;&…