[python入门(52)] - python中的OS模块(包) - 1

news2024/11/24 10:55:16

目录

❤  OS模块和path模块(函数)

❤  当前路径及路径下的文件

❤  绝对路径

❤  查看指定文件路径的文件夹路径部分和文件名部分

❤  路径拼接

❤  获取路径的文件夹路径部分

❤  获取路径的文件名

❤  查看文件时间 

❤  查看文件大小

❤  查看文件是否存在


❤  OS模块和path模块(函数)

os是operation system(操作系统)的缩写,os模块就是python对操作系统操作接口的封装。os模块提供了多数操作系统的功能接口函数。(OS模块提供了与操作系统进行交互的函数

操作系统属于Python的标准实用程序模块。该模块提供了使用依赖于操作系统的函数的便携式方法

在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),查找测试用例的Excel文件或者Yaml文件等

❤  当前路径及路径下的文件

os.getcwd() :查看当前所在路径(具体到当前脚本的上一级)

os.listdir(path) :列举path目录下的所有文件。返回的是列表类型

输出:

E:\资源\Python\基础
['.pytest_cache','案例03.py']

❤  绝对路径

 os.path.abspath(path) :返回当前文件位置的绝对路径。

 os.path.realpath(path) :返回当前文件位置的绝对路径。

注意:如果  os.path.abspath(.) 存在与已被定义的方法中,则返回的绝对路径是调用该方法的模块的绝对路径,而不是方法的绝对路径

例子1:

import os

print(os.getcwd())

print(os.path.abspath('.'))

print(os.path.abspath('..'))

print(os.path.abspath('../..'))

输出:

例子2:

import os

print(os.getcwd())
print(os.path.realpath(__file__))
print(os.path.abspath(__file__))

 输出:

E:\资源\day01-基础
E:\资源\day01-基础\people.py
E:\资源\day01-基础\people.py

❤  查看指定文件路径的文件夹路径部分和文件名部分

os.path.split(path) :将指定文件的路径分解为(文件夹路径, 文件名),返回的数据类型是元组类型。

  • 若文件夹路径字符串最后一个字符是\,则只有文件夹路径部分有值
  • 若路径字符串中均无\,则只有文件名部分有值
  • 若路径字符串有\,且不在最后,则文件夹和文件名均有值。且返回的文件名的结果不包含\

 ❤  路径拼接

os.path.join(path1, path2, ...) :将入参的path进行组合,若其中有绝对路径,则之前的path将被删除。

import os
os1 = os.path.split('D:\\pythontest\\ostest\\Hello.py')
print(os1)

os2 = os.path.split('.')
print(os2)

os3 = os.path.split('D:\\pythontest\\ostest\\')
print(os3)

os4 = os.path.split('D:\\pythontest\\ostest')
print(os4)

os5 = os.path.join('D:\\pythontest', 'ostest')
print(os5)

os6 = os.path.join('D:\\pythontest\\ostest', 'hello.py')
print(os6)

os7 = os.path.join('D:\\pythontest\\b', 'D:\\pythontest\\a')
print(os7)

输出:

('D:\\pythontest\\ostest', 'Hello.py')
('', '.')
('D:\\pythontest\\ostest', '')
('D:\\pythontest', 'ostest')
D:\pythontest\ostest
D:\pythontest\ostest\hello.py
D:\pythontest\a 

❤  获取路径的文件夹路径部分

os.path.dirname(path) :返回path中的文件夹路径部分,且路径结尾不包含'\'。【即返回文件的路径(此路径不包含文件名)】

import os
os1 = os.path.dirname('D:\\pythontest\\ostest\\hello.py')
print(os1)
os2 = os.path.dirname('.')
print(os2)
os3 = os.path.dirname('D:\\pythontest\\ostest\\')
print(os3)
os4 = os.path.dirname('D:\\pythontest\\ostest')
print(os4)

输出:

D:\pythontest\ostest

D:\pythontest\ostest
D:\pythontest

❤  获取路径的文件名

os.path.basename(path) :返回path中的文件名。

import os
os1 = os.path.basename('D:\\pythontest\\ostest\\hello.py')
print(os1)

os2 = os.path.basename('.')
print(os2)

os3 = os.path.basename('D:\\pythontest\\ostest\\')
print(os3)

os4 = os.path.basename('D:\\pythontest\\ostest')
print(os4)

输出:

hello.py
.

ostest

❤  查看文件时间 

os.path.getmtime(path) :返回文件或文件夹的最后修改时间,从新纪元到访问时的秒数

os.path.getatime(path) :返回文件或文件夹的最后访问时间,从新纪元到访问时的秒数

os.path.getctime(path) :返回文件或文件夹的创建时间,从新纪元到访问时的秒数

import os
os1 = os.path.getmtime('E:/day01-基础/people.py')
print(os1)
os2 = os.path.getatime('E:/day01-基础/people.py')
print(os2)
os3 = os.path.getctime('E:/day01-基础/people.py')
print(os3)

 输出:

1677420871.014602
1677420871.1175199
1675431050.0688083

❤  查看文件大小

os.path.getsize(path) :返回文件的大小;若path入参值是一个文件夹路径则返回0 

import os
os1 = os.path.getsize('E:/day01-基础/people.py')
print(os1)

os2 = os.path.getsize('E:/day01-基础/')
print(os2)

 输出:

281
0

❤  查看文件是否存在

 os.path.exists(path) :判断文件或者文件夹是否存在,返回True 或 False。【文件或文件夹的名字不区分大小写】 

import os
os1 = os.listdir(os.getcwd())  
print(os1)    #  ['hello.py', 'test.txt']

os2 = os.path.exists('D:\\pythontest\\ostest\\hello.py') 
print(os2)     #  True

os3 = os.path.exists('D:\\pythontest\\ostest\\Hello.py') 
print(os3)     #  True

os4 = os.path.exists('D:\\pythontest\\ostest\\Hello1.py')  
print(os4)    #  False

 ❤  os模块中操作目录以及文件的函数

 os.mkdir('文件夹名') :新建文件夹;入参为目录路径,不可为文件路径;(父目录必须存在的情况下创建下一级文件夹)

 os.rmdir('文件夹名') :删除文件夹;入参为目录路径,不可为文件路径

 os.remove('文件路径') :删除文件;入参为文件路径,不可为目录路径

 os.makedirs('路径及文件') :递归新建文件夹;可以连续创建该文件夹的多级目录

 os.path.isdir('路径') :判断入参路径是否为文件夹,返回值为布尔值;是文件夹返回True,不是文件夹返回False

 os.path.isfile('路径') :判断入参路径是否为文件,返回值为布尔值;是文件返回True,不是文件返回False

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

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

相关文章

【原创】java+swing+mysql设备预约管理系统设计与实现

我们在办公室或者学校实验室的,经常需要使用一些设备,因此需要提前租借。今天我们主要介绍如何使用javaswing和mysql数据库去完成一个设备预约管理系统,方便用户进行设备管理和预约。 功能分析: 设备预约管理系统主要是为了方便…

医疗床头卡(基站方案)

一、产品特色 低功耗,常规使用3-5年电池寿命支持空中唤醒点阵电子纸屏幕安装简单,快速布置远程智能化管理低碳环保,无纸化安全可靠ESL_BWR7.5_V2二、系统结构 三、多基站组织架构 四、电子床头卡 接收路由器发送的数据信息并解析&#xff0…

深度学习之卷积神经网络学习笔记一

1. 引言深度学习是一系列算法的统称,包括卷积神经网络(CNN),循环神经网络(RNN),自编码器(AE),深度置信网络(DBN),生成对抗…

FreeRTOS优先级翻转

优先级翻转优先级翻转:高优先级的任务反而慢执行,低优先级的任务反而优先执行优先级翻转在抢占式内核中是非常常见的,但是在实时操作系统中是不允许出现优先级翻转的,因为优先级翻转会破坏任务的预期顺序,可能会导致未…

16- TensorFlow实现线性回归和逻辑回归 (TensorFlow系列) (深度学习)

知识要点 线性回归要点: 生成线性数据: x np.linspace(0, 10, 20) np.random.rand(20)画点图: plt.scatter(x, y)TensorFlow定义变量: w tf.Variable(np.random.randn() * 0.02)tensor 转换为 numpy数组: b.numpy()定义优化器: optimizer tf.optimizers.SGD()定义损失: …

利用Redis一步步实现优惠券的最终秒杀方案

订单ID不能采用自增长的原因: 1、规律变化太明显。两天下单的ID的差值,能够计算出商城的订单量; 2、如果采用自增长,订单数据是会不断产生的,到时候要分表,但是每个表的ID都是从0开始增长的,这…

selenium模块(自动化)

文章目录一、环境配置二、使用selenium解析源码三、基本函数四、子页面(ifFrame)(动作链,拖拽)五、实现无可视化界面,规避被检测的风险(反反爬)六、等待七、异常处理Selenium是自动化…

Vue+python+django+flask共享汽车租赁管理系统

共享汽车管理系统的系统管理员可以管理用户,可以对用户信息修改删除以及查询操作。具体界面的展示如图所示。 3.2投放地区管理 系统管理员可以对投放地区信息进行添加,修改,删除以及查询操作。具体界面如图所示。 3.3汽车信息管理 系统管…

【原创】java+swing+mysql教室管理系统设计与实现

大学生活中,我们很多时候都要用到教室,比如开个班会,开展某次活动,一般情况下为了避免占用教室资源,一般情况下都会提前进行预约教室,所以今天我们讲的就是如何使用javaswingmysql去设计一个教室预约管理系…

13 Sentinel初始化监控

Sentinel初始化工程演示 通过一个案例来让大家了解Sentinel的初始化演示,现在我们需要做几件事: 启动本地Nacos: 8848创建新的Module:cloudalibaba-sentinel-service8401启动Sentinel服务:8080启动sentinel微服务840…

Day901.内部临时表 -MySQL实战

内部临时表 Hi,我是阿昌,今天学习记录的是关于内部临时表的内容。 sort buffer、内存临时表和 join buffer。这三个数据结构都是用来存放语句执行过程中的中间数据,以辅助 SQL 语句的执行的。 其中,在排序的时候用到了 sort bu…

win10环境下安装openCDA(详细解答CARLA+SUMO以及遇到的问题)

目录预备知识CARLA安装安装CMAKE安装MAKE安装Visual Studio 2019安装unreal engine 4.26openCDA安装安装SUMO预备知识 opeCDA结合了carla和sumo,支持协同驾驶开发与测试,最近开源了。 论文链接:https://arxiv.org/abs/2107.06260 官方linux安…

事件驱动设计模式

是一种常见的设计模式,其核心思想是:系统中发生的事件会触发相应的事件处理器或监听器,从而实现特定的业务逻辑或功能 该设计模式通常由以下几个要素组成: 事件源(Event Source):事件源是指发生…

C++数据结构 —— AVL树

目录 1.AVL树介绍 2.AVL树如何进行平衡调整 2.1平衡因子 2.2AVL树的插入 2.3左单旋 2.4右单旋 2.5左右双旋 2.6右左双旋 2.8完整代码 3.测试用例 4.验证是否为AVL树 1.AVL树介绍 AVL树是map/set/multimap/multi/set等容器的一种底层结构,其本质就是一颗…

推荐系统算法总览【持续学习ing】

推荐系统整体知识架构 推荐模型发展 工业 CTR模型的三个改进大点:显性特征交叉, 特征重要度, user历史信息的挖掘 显性特征交叉: 针对的是隐性无脑交叉的DNN的不足, 针对一些重要的关键特征进行显性特征交叉&#xf…

Java中BIO、NIO和AIO的区别和应用场景

IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信&#…

学习网安需要了解的一些基础知识

P1.基本概念 1.POC/EXP POC(proof of concept)常指一段漏洞验证代码;EXP(exploit)指利用系统漏洞进行攻击的动作 PoC是证明漏洞存在的,而 Exp 是利用这个漏洞进一步进行攻击,先有POC,才有EXP 2.Payload/shellcode payload&#xff0…

【奶奶看了也不会】AI绘画 Mac安装stable-diffusion-webui绘制AI妹子保姆级教程

1.作品图 2.准备工作 目前网上能搜到的stable-diffusion-webui的安装教程都是Window和Mac M1芯片的,而对于因特尔芯片的文章少之又少,这就导致我们还在用老Intel 芯片的Mac本,看着别人生成美女图片只能眼馋。所以小卷这周末折腾了一天&#…

Random(一)高并发问题,ThreadLocalRandom源码解析

目录1.什么是伪随机数?2.Random2.1 使用示例2.2 什么种子重复,随机数会重复?2.3 nextInt() 源码分析2.4 线程安全的实现2.5 高并发问题3.ThreadLocalRandom3.1 使用示例3.2 current() 源码解析3.2.1 Thread中保存的变量:3.2.2 Thr…

2023最新谷粒商城笔记之MQ消息队列篇(全文总共13万字,超详细)

MQ消息队列 其实队列JDK中本身就有,不过这种队列也只能单体服务可能会使用,一旦项目使用的分布式架构,那么一定还是需要用到一个消息中间件的。我们引入消息队列的原因就是对我们的页面相应速度再优化,让用户的体验更好&#xff…