吴裕雄--python学习笔记:os模块的使用
在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于os模块。
1.当前路径及路径下的文件 os.getcwd():查看当前所在路径。 os.listdir(path):列举目录下的所有文件。返回的是列表类型。
import os print(os.getcwd())
print(os.listdir(os.getcwd()))
C:\Users\Administrator\pythonwork
['.ipynb_checkpoints', 'turtle.ipynb', 'Untitled.ipynb', 'Untitled1.ipynb', 'Untitled2.ipynb', 'Untitled3.ipynb', 'Untitled4.ipynb']
2.绝对路径 os.path.abspath(path):返回path的绝对路径。
3.查看路径的文件夹部分和文件名部分 os.path.split(path):将路径分解为(文件夹,文件名),返回的是元组类型。可以看出,若路径字符串最后一个字符是\,则只有文件夹部分有值;若路径字符串中均无\,则只有文件名部分有值。若路径字符串有\,且不在最后,则文件夹和文件名均有值。且返回的文件夹的结果不包含\. os.path.join(path1,path2,...):将path进行组合,若其中有绝对路径,则之前的path将被删除。
print(os.path.abspath('.'))
C:\Users\Administrator\pythonwork
print(os.path.abspath('..'))
C:\Users\Administrator
print(os.path.split('D:\\pythontest\\ostest\\Hello.py'))
('D:\\pythontest\\ostest', 'Hello.py')
print(os.path.split('.'))
('', '.')
print(os.path.split('D:\\pythontest\\ostest\\'))
('D:\\pythontest\\ostest', '')
os.path.split('D:\\pythontest\\ostest')
print(os.path.split('D:\\pythontest\\ostest'))
('D:\\pythontest', 'ostest')
print(os.path.join('D:\\pythontest', 'ostest'))
D:\pythontest\ostest
print(os.path.join('D:\\pythontest\\ostest', 'hello.py'))
D:\pythontest\ostest\hello.py
print(os.path.join('D:\\pythontest\\b', 'D:\\pythontest\\a'))
D:\pythontest\a
print(os.path.dirname('D:\\pythontest\\ostest\\hello.py'))
D:\pythontest\ostest
print(os.path.dirname('.'))
print(os.path.dirname('D:\\pythontest\\ostest\\'))
D:\pythontest\ostest
print(os.path.dirname('D:\\pythontest\\ostest'))
D:\pythontest
os.path.basename(path):返回path中的文件名。
print(os.path.basename('D:\\pythontest\\ostest\\hello.py'))
hello.py
print(os.path.basename('.'))

print(os.path.basename('D:\\pythontest\\ostest\\'))
print(os.path.basename('D:\\pythontest\\ostest'))
ostest
4.查看文件时间 os.path.getmtime(path):文件或文件夹的最后修改时间,从新纪元到访问时的秒数。 os.path.getatime(path):文件或文件夹的最后访问时间,从新纪元到访问时的秒数。 os.path.getctime(path):文件或文件夹的创建时间,从新纪元到访问时的秒数。
print(os.path.getmtime('F:\\aa.txt'))
1563784321.1284573
print(os.path.getatime('F:\\aa.txt'))
1568359546.3176775
print(os.path.getctime('F:\\aa.txt'))
1568359546.2771735
5.查看文件大小 os.path.getsize(path):文件或文件夹的大小,若是文件夹返回0。
print(os.path.getsize('F:\\aa.txt'))
19
print(os.path.getsize('F:\\'))
20480
6.查看文件是否存在 os.path.exists(path):文件或文件夹是否存在,返回True 或 False。
print(os.listdir(os.getcwd()))
['.ipynb_checkpoints', 'turtle.ipynb', 'Untitled.ipynb', 'Untitled1.ipynb', 'Untitled2.ipynb', 'Untitled3.ipynb', 'Untitled4.ipynb']
print(os.path.exists('D:\\pythontest\\ostest\\hello.py'))
False
print(os.path.exists('D:\\pythontest\\ostest\\Hello.py'))
False
print(os.path.exists('D:\\pythontest\\ostest\\Hello1.py'))
False
7.一些表现形式参数 os中定义了一组文件、路径在不同操作系统中的表现形式参数,如:
print(os.sep)
\
print(os.extsep)
.
print(os.pathsep)
;
print(os.linesep)
8.实例说明 在自动化测试过程中,常常需要发送邮件,将最新的测试报告文档发送给相关人员查看,这是就需要查找最新文件的功能。 举例:查找文件夹下最新的文件。

import os
def new_file(test_dir):
#列举test_dir目录下的所有文件(名),结果以列表形式返回。
lists=os.listdir(test_dir)
#sort按key的关键字进行升序排序,lambda的入参fn为lists列表的元素,获取文件的最后修改时间,所以最终以文件时间从小到大排序
#最后对lists元素,按文件修改时间大小从小到大排序。
lists.sort(key=lambda fn:os.path.getmtime(test_dir+'\\'+fn))
#获取最新文件的绝对路径,列表中最后一个值,文件夹+文件名
file_path=os.path.join(test_dir,lists[-1])
return file_path #返回D:\pythontest\ostest下面最新的文件
print new_file('D:\\system files\\workspace\\selenium\\email126pro\\email126\\report')

关于lambda的用法(python中单行的最小函数):
key=lambda fn:os.path.getmtime(test_dir+'\\'+fn)
#相当于
def key(fn):
return os.path.getmtime(test_dir+'\\'+fn)
吴裕雄--python学习笔记:os模块的使用的更多相关文章
- python学习笔记-os模块参数
python的os 模块提供了非常丰富的方法用来处理文件和目录.常用的方法如下表所示: os.access(path, mode) 检验权限模式 os.chdir(path) 改变当前工作目录 os. ...
- 吴裕雄--python学习笔记:os模块函数
os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. os.getcwd:得 ...
- 吴裕雄--python学习笔记:sqlite3 模块
1 sqlite3.connect(database [,timeout ,other optional arguments]) 该 API 打开一个到 SQLite 数据库文件 database 的 ...
- 吴裕雄--python学习笔记:BeautifulSoup模块
import re import requests from bs4 import BeautifulSoup req_obj = requests.get('https://www.baidu.co ...
- 吴裕雄--python学习笔记:sqlite3 模块的使用与学生信息管理系统
import sqlite3 cx = sqlite3.connect('E:\\student3.db') cx.execute( '''CREATE TABLE StudentTable( ID ...
- 吴裕雄--python学习笔记:爬虫基础
一.什么是爬虫 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息. 二.Python爬虫架构 Python 爬虫架构主要由五个部分组成,分别是调度器.URL管理器.网页下载器.网 ...
- 吴裕雄--python学习笔记:爬虫包的更换
python 3.x报错:No module named 'cookielib'或No module named 'urllib2' 1. ModuleNotFoundError: No module ...
- 吴裕雄--python学习笔记:爬虫
import chardet import urllib.request page = urllib.request.urlopen('http://photo.sina.com.cn/') #打开网 ...
- 吴裕雄--python学习笔记:通过sqlite3 进行文字界面学生管理
import sqlite3 conn = sqlite3.connect('E:\\student.db') print("Opened database successfully&quo ...
随机推荐
- Est数据库
Est--编码序列,gene 片段且具有标签 其中,est数据库中是类似测序1.测序2.测序3这样的序列.实验室测得的序列是cDNA,通过上图方法拼接,电脑克隆(dbest).如果有overlap则认 ...
- node/静态路由/express框架中的express.static()和app.use()
此篇文章转载于 express框架中的express.static()和app.use() Express框架在使用app.use中传入express.static设置静态路由时,这个文件夹下的所有文 ...
- MySQL 基础知识梳理
MySQL 的安装方式有多种,但是对于不同场景,会有最适合该场景的 MySQL 安装方式,下面就介绍一下 MySQL 常见的安装方法,包括 rpm 安装,yum 安装,通用二进制安装以及源码编译安装, ...
- dynamic用法
https://www.cnblogs.com/lgx5/p/9650203.html https://www.cnblogs.com/gygtech/p/9915367.html
- Solving ordinary differential equations I(Nonstiff Problems),Exercise 1.2:A wrong solution
(Newton 1671, “Problema II, Solutio particulare”). Solve the total differential equation $$3x^2-2ax+ ...
- poj-3662 Telephone Lines 二分答案+最短路
链接:洛谷 POJ 题目描述 Farmer John wants to set up a telephone line at his farm. Unfortunately, the phone co ...
- ionic3 发布订阅者模式实现
在ionic3 中实现订阅发布模式,需要用到Events. Events下面有三个方法 events.subscribe() 订阅 events.publish() 发布 events.unsub ...
- 108)PHP分页显示
一个代码页的链接:https://www.cnblogs.com/mmykdbc/p/6688460.html 首先一个简单的代码展示: 目录关系: 数据库表格展示: 结果展示: 然后 代码展示 ...
- 36)PHP,获取数据库数据并在html中显示(晋级3)
首先展示我的html代码和php文件的位置关系: 然后我的php文件: <?php class db { public $host ;//= "localhost";//定义 ...
- JS如何按时间粒度获取date的时间差
获取date类型 var type = _xAxis[0].split(/-|:|\s/).length; 按时间粒度获取date的时间差 function getDateDiffByType(new ...