吴裕雄--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 ...
随机推荐
- 题解 P4942 【小凯的数字】
题目 为什么看到很多题解区的 dalao 都用逆元?是我太菜了吧 [分析] 首先,根据弃九验算法的原理,显然可以得到:一个 \(n\) 位数 \(a_1a_2a_3\dots a_n\equiv a_ ...
- [Algo] 646. Store Number Of Nodes In Left Subtree
Given a binary tree, count the number of nodes in each node’s left subtree, and store it in the numN ...
- 吴裕雄--天生自然 PHP开发学习:表单 - 验证邮件和URL
$name = test_input($_POST["name"]); if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $ ...
- SQL注入常用函数(注入小白的学习笔记)
在盲注的情况下,往往需要一个一个字符的去猜解,即过程中需要截取字符串 在这里整理了一下一些常用函数 由于现阶段学习不够深入,整理分类不清楚具体,不过博主会慢慢进行完善 user() 查询当前数据库用户 ...
- [前端] VUE基础 (5) (过滤器、生命周期、钩子函数)
一.过滤器 过滤器分为局部过滤器和全局过滤器. 1.局部过滤器 <body> <div id="app"> </div> <script ...
- C语言笔记 16_标准库&stdio&stdlib&string&time
<stdio.h> 简介 stdio .h 头文件定义了三个变量类型.一些宏和各种函数来执行输入和输出. 库变量 下面是头文件 stdio.h 中定义的变量类型: 序号 变量 & ...
- ruoyi IpUtils
package com.ruoyi.common.utils; import java.net.InetAddress; import java.net.UnknownHostException; i ...
- 函数(Python)
函数是什么? 计算机的函数,是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能的同时,还带有一个入口和一个出口,所谓的入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数 ...
- mysql SQL优化琐记之索引
equal最好了,其次in,最后是range != <> 这类非操作尽量不用,它会转换为range.>都是范围查询 复合索引有左匹配原则,(clo_a,clo_b)相当建立了两个 ...
- IIS设置禁止某个IP或IP段访问网站的方法
网站被刷,对话接不过来 打开IIS,选中禁IP的站点,找到“ip地址和域限制”这个功能,如果没有安装,打开服务器管理器,点击角色,窗口右边找到添加角色服务,找到“IP和域限制”并勾选安装. 打开ip地 ...