吴裕雄--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 ...
随机推荐
- 【图论算法】Dijstra&BFS
选择V-S中的点加入S时用了贪心思想,即求d[]中legth最小且未被标记(未加入加入S)的点. 一点都没优化的实现: import java.lang.reflect.Array; /** * Cr ...
- POJ 2796 Feel Good 【单调栈】
传送门:http://poj.org/problem?id=2796 题意:给你一串数字,需要你求出(某个子区间乘以这段区间中的最小值)所得到的最大值 例子: 6 3 1 6 4 5 2 当L=3,R ...
- memcached安装使用相关-php
1.windows下面: 为什么memcache官方没有for windows的版本下载地址,现在怎么办? https://segmentfault.com/q/1010000002219198 32 ...
- 吴裕雄--天生自然 pythonTensorFlow图形数据处理:将MNIST手写图片数据写入TFRecord文件
import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_dat ...
- Java之常见异常
package com.atguigu.java1; import java.io.File;import java.io.FileInputStream;import java.util.Date; ...
- 爬虫笔记(二)——浏览器的模拟(Headers属性)
有的时候,我们无法爬取一些网页,会出现403错误,因为这些网页为了防止别人恶意采集其信息所以进行了一些反爬虫的设置.那么如果我们向爬取这些网页的信息,应该怎么办呢? 可以设置一些Headers信息,模 ...
- HTTP1.0和HTTP1.1的一些区别
HTTP1.0和HTTP1.1的一些区别 HTTP1.0最早在网页中使用是在1996年,那个时候只是使用一些较为简单的网页上和网络请求上,而HTTP1.1则在1999年才开始广泛应用于现在的各大浏览器 ...
- 36)PHP,搜寻数据库信息在html中显示(晋级1)
首先是数据库的样子展示: 然后就是我的PHP主文件了: <?php class db { public $host="localhost" ;//这个是主机的地址 publi ...
- day12-模块导入
# 一.import import demo # in demo.py -- 导入demo模块,执行里面的print语句. print(demo.money) # 8000000 -- 打印demo的 ...
- Nginx的下载与安装
.创建文件输入网页中需要复制的 cat >/etc/yum.repos.d/nginx.repo<<EOF [nginx-stable] name=nginx stable repo ...