我们在做自动化测试的时候,可能会遇到一些需要处理文件一些需求,那么我们可以通过直接写文件的目录进行操作,当然作为一名自动化测试工程师,怎么可能用这种方法?python中自带的有OS,我们可以通过os模块进行帮助我们解决这些问题

OS模块

os库是Python标准库,包含几百个函数,常用的有路径操作、进程管理、环境参数等

os.path

os.path主要对文件路径进行操作,具体有哪些操作?我们可以继续往下看

这里我们需要先了解一个pycharm的小知识,在pycharm中的__file__表示文件本身,输出的是一个绝对路径。

1、当前文件名称

# 返回当前文件名称
a = os.path.basename(__file__)
print('当前文件名:%s'%a) 输出结果:
当前文件名:a1.py

2、当前文件绝对路径

# 当前文件绝对路径
b = os.path.abspath(__file__)
print('当前文件绝对路径:%s'%b) 输出结果:
当前文件绝对路径:E:\python1\app\a1.py

3、当前文件路径

# 当前文件路径
c = os.path.dirname(__file__)
print('当前文件路径:%s'%c) 输出结果:
当前文件路径:E:/python1/app

4、判断文件是否存在

# 判断路径是否存在
d = os.path.exists(__file__)
print('文件存在:%s'%d)
e = os.path.exists('E:\\python2')
print('文件存在:%s'%e) 输出结果:
文件存在:True
文件存在:False

5、判断路径是否存在

# 路径是否存在
a = os.path.lexists('E:\\python1')
print('路径是否存在:%s'%a)
b = os.path.lexists('E:\\python2')
print('路径是否存在:%s'%b) 输出结果:
路径是否存在:True
路径是否存在:False

6、返回文件修改时间

# 返回文件修改时间
a = os.path.getatime('E:\\python1')
print('文件修改时间:%s'%(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(a)))) 输出结果:
文件修改时间:2019-11-26 15:24:59

7、判断文件是否存在

# 判断文件是否存在
a = os.path.getsize(__file__)
print('文件存在,文件大小为:%s'%a)
try:
b = os.path.getsize('E:\\python1\a2.py')
except Exception as msg:
print('错误为:%s'%msg) 输出结果:
文件存在,文件大小为:1217
错误为:[WinError 123] 文件名、目录名或卷标语法不正确。: 'E:\\python1\x072.py'

8、文件的真实路径

# 文件的真实路径
a = os.path.realpath(__file__)
print('文件的真实路径:%s'%a) 输出结果:
文件的真实路径:E:\python1\app\a1.py

9、分割文件目录和文件名称已元祖返回

# 分割路径和文件名
a = os.path.split(__file__)
print('文件目录:%s,文件名称:%s'%(a[0],a[1])) 输出结果:
文件目录:E:/python1/app,文件名称:a1.py

10、目录和文件合成一个路径

# 目录和文件进行合并成路径
a = os.path.join('E:\\python1\\app','123.jpg')
print('合并成的路径为:%s'%a) 输出结果:
合并成的路径为:E:\python1\app\123.jpg

 这里只写了一些测试常用的一些os.path的模块内容,有一些安静也没有用到过,所有就没有写,后面用到了,在给大家补充。

python之os模块(os.path)的更多相关文章

  1. os模块,os.path模块,subprocess模块,configparser模块,shutil模块

    1.os模块 os表示操作系统该模块主要用来处理与操作系统相关的操作最常用的文件操作打开 读入 写入 删除 复制 重命名 os.getcwd() 获取当前执行文件所在的文件夹路径os.chdir(&q ...

  2. 路径操作OS模块和Path类(全)一篇够用!

    路径操作 路径操作模块 os模块 os属性 os.name # windows是nt, linux是posix os.uname() # *nix支持 sys.platform #sys模块的属性, ...

  3. Python基础-常用模块OS

    模块:一个python文件就是一个模块,模块分三种: 1,标准模块,也就是python自带的模块,例如import  time,random,string等等 2,第三方模块,这种模块需要自己安装才能 ...

  4. python 自带模块 os模块

    os模块 首先可以打开cmd输入python进入交互界面  然后输入 dir(os) 就可以看到os的全部用法了  我们简单的举几个例子就行了. 写入os.getcwd()  可以查看当前所在路径 i ...

  5. os模块os.walk() 方法和os.path.join()的简单使用

    os.walk:   http://www.runoob.com/python/os-walk.html os.path.join:   https://blog.csdn.net/zmdzbzbhs ...

  6. os模块 os.stat('path/filename') os.path.dirname(path) os.path.exists(path)  os.path.join(path1[, path2[, ...]])

    提供对操作系统进行调用的接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname")  改变当前脚本工作目录:相当于 ...

  7. python os模块 os.chmod

    os.chmod() 方法用于更改文件或目录的权限. os.chmod(path, mode) 参数 path -- 文件名路径或目录路径. flags -- 可用以下选项按位或操作生成, 目录的读权 ...

  8. python模块之os和os.path模块

    1.os模块os.listdir(dirname) 列出dirname下的目录和文件os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径.os.getenv()和os.pu ...

  9. python基础之模块之os模块

    os模块 os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小…… 另 ...

随机推荐

  1. Spring Security OAuth2 Demo —— 密码模式(Password)

    前情回顾 前几节分享了OAuth2的流程与授权码模式和隐式授权模式两种的Demo,我们了解到授权码模式是OAuth2四种模式流程最复杂模式,复杂程度由大至小:授权码模式 > 隐式授权模式 > ...

  2. Hadoop完全分布式集群搭建

    Hadoop的运行模式 Hadoop一般有三种运行模式,分别是: 单机模式(Standalone Mode),默认情况下,Hadoop即处于该模式,使用本地文件系统,而不是分布式文件系统.,用于开发和 ...

  3. NAT(地址解析协议)

    第七部分,也是本次更新的最后一部分,NAT(Network Address Translation),即地址解析协议.通俗理解,地址解析协议就是当一个单位只拥有一个公网ip地址,当内网中的主机想要访问 ...

  4. JS基础-全局内置对象

    对象 JS中有那些内置对象 数据封装类对象 String.Array.Object.Boolean.Number 其他对象 Math.Date.RegExp.Error.Function.Argume ...

  5. 人生苦短,我用Python(1)

    1.Python保留字与标识符 保留字是Python语言中一些已经被赋予特定意义的单词,开发程序时,不可以把这些保留字作为变量.函数.类.模块和其他对象的名称来使用. and as assert br ...

  6. appium+java(八)获取Toast内容信息

    前言 Appium中很经典的问题了,在两年前也就是2017年3月6号07:22分,我才看到appium1.6.3版本的发布,更新内容为Ios上可以实现Toast的获取,而Windows也就是安卓端,还 ...

  7. 小白的springboot之路(九)、集成MongoDB

    0.前言 MongoDB是一个高性能.开源的文档型数据库,是当前nosql数据库中最热门的一种,在企业中广泛应用:虽然前段时间更改了开源协议导致被很多企业舍弃,但主要是对云服务商影响较大,对我们来说其 ...

  8. 位域-isa指针

    一.isa指针结构 union isa_t { isa_t() { } isa_t(uintptr_t value) : bits(value) { } Class cls; uintptr_t bi ...

  9. 云原生技术之Docker入门

    1. 为什么需要容器? 下图是一个比较传统的软件架构 做过java的同学可能对上图的架构方式比较了解,我们通常会将一个应用程序生成一个war包,放到一个tomcat容器当中并在一台虚拟机(VM)中启动 ...

  10. MySQL数据库Group by分组之后再统计数目Count(*)与不分组直接统计数目的区别

    简述问题“统计最新时刻处于某一状态的设备的数量” 1. 首先子查询结果,可以看到每个设备最新的状态信息 2.1 在子查询的基础上,对设备状态进行分组,进行统计每个状态的设备数量 2.1.1 可以看到处 ...