前言:在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于os模块,所以今天整理下比较常用的几个方法。网上这方面资料也很多,每次整理,只是对自己所学的知识进行梳理,从而加深对某个模块的使用。
那我们看看他们的使用吧:
获取文件所在路径
import os
os.path.dirname(__file__) 获取当前文件的所在路径
输入:
import os from reptile import * print(os.path.dirname(__file__))
输出:
F:\Python\python.exe F:/Python/pag/dict_usage.py
F:/Python/pag
1-1.print (os.path.dirname(os.path.dirname(__file__))) 获取当前文件的所在目录的上级路径
输入:
import os from reptile import * print(os.path.dirname(os.path.dirname(__file__)))
输出:
F:\Python\python.exe F:/Python/pag/dict_usage.py
F:/Python
1-2.print (os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) 获取当前文件的所在目录的上级目录的上级路径
输入:
import os from reptile import * print (os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
输出:
F:\Python\python.exe F:/Python/pag/dict_usage.py
F:/
2.os.getcwd()——得到当前工作的目录。
输入:
print (os.getcwd())输出:
F:\Python\pag
3.os.name()——判断现在正在实用的平台,Windows 返回 ‘nt‘; Linux 返回'posix‘
4,os.listdir()——指定所有目录下所有的文件和目录名。
输入:
print (os.listdir())
输出:
F:\Python\python.exe F:/Python/pag/dict_usage.py
['CRVanguard.py', 'dict_usage.py', 'establish_review.py', 'invoketestcase.py', '__init__.py', '__pycache__']
#以列表的形式全部列举出来,其中没有区分目录和文件。
5.os.remove()——删除指定文件
输入:
print (os.remove('E:\python-3.2.3.amd64.msi'))
输出:
F:\Python\python.exe F:/Python/pag/dict_usage.py
None
6. os.rmdir()——删除指定目录
7. os.mkdir()——创建目录注意:这样只能建立一层,
8.os.makedirs()——递归建立目录
9.os.path.isfile()——判断指定对象是否为文件。是返回True,否则False
10.os.path.isdir()——判断指定对象是否为目录。是True,否则False
输入:
print (os.path.isdir('lib'))
输出:
F:\Python\python.exe F:/Python/pag/dict_usage.py
False
11.os.path.exists()——检验指定的对象是否存在。是True,否则False.例:
输入:
print (os.path.exists('./lib'))
输出:
F:\Python\python.exe F:/Python/pag/dict_usage.py
False
12.os.path.split()——返回路径的目录和文件名。
输入:
print (os.path.split('E:\requests-2.18.4.tar.gz.asc'))
输出:
F:\Python\python.exe F:/Python/pag/dict_usage.py
('E:', '\requests-2.18.4.tar.gz.asc')
此处只是把前后两部分分开而已。就是找最后一个‘/‘。看例子:
输入: print (os.path.split('E:\ ')) 输出: F:\Python\python.exe F:/Python/pag/dict_usage.py ('E:\\', ' ')
13.os.system()——执行shell命令。例:
var=123
os.environ[‘var‘]=str(var) //注意此处[]内得是 “字符串”
os.system(‘echo $var‘)
14. os.chdir()——改变目录到指定目录
输入: #!/usr/bin/python # -*- coding: UTF-8 -*- import os, sys path = "/tmp" # 查看当前工作目录 retval = os.getcwd() print "当前工作目录为 %s" % retval # 修改当前工作目录 os.chdir( path ) # 查看修改后的工作目录 retval = os.getcwd() print "目录修改成功 %s" % retval 输出: 当前工作目录为 /www 目录修改成功 /tmp
15.os.path.getsize()——获得文件的大小,如果为目录,返回0
输入:
print (os.path.getsize('F:\QCExplorer.ini'))
输出:
F:\Python\python.exe F:/Python/pag/dict_usage.py
456
16.os.path.abspath()——获得绝对路径。
输入:
print (os.path.abspath('.'))
输出:
F:\Python\python.exe F:/Python/pag/dict_usage.py
F:\Python\pag
17.os.path.join(path, name)——连接目录和文件名。
输入:
print (os.path.join('F:\ ','lavu.exl'))
输出:
F:\Python\python.exe F:/Python/pag/dict_usage.py
F:\ \lavu.exl
18.os.path.basename(path)——返回文件名
输入:
print (os.path.basename('F:\QCExplorer.ini'))
输出:
F:\Python\python.exe F:/Python/pag/dict_usage.py
QCExplorer.ini
19.os.path.dirname(path)——返回文件路径
输入:
print (os.path.dirname('F:\QCExplorer.ini'))
输出:
F:\Python\python.exe F:/Python/pag/dict_usage.py
F:\
20.获得当前程序所在的实际目录
输入: import os import sys if __name__ == "__main__": print os.path.realpath(sys.argv[0]) print os.path.split(os.path.realpath(sys.argv[0])) print os.path.split(os.path.realpath(sys.argv[0]))[0] 输出: F:\Python\python.exe F:/Python/pag/dict_usage.py F:\Python\pag\dict_usage.py ('F:\\Python\\pag', 'dict_usage.py') F:\Python\pag
重点:用法
"htmlcode">
#coding=utf-8 import os os.system(‘E:\\test_object\\all_test.py‘) 或者 import os os.chdir("E:\\test_object") os.system(‘Python all_test.py‘)
"htmlcode">
输入: result_dir = ('F:\\') lists=os.listdir(result_dir) #重新按时间对目录下的文件进行排列 lists.sort(key=lambda fn: os.path.getmtime(result_dir+"\\"+fn)) print ('最新的文件为: ' + lists[-1]) file = os.path.join(result_dir,lists[-1]) print(file) 输出: F:\Python\python.exe F:/Python/pag/dict_usage.py 最新的文件为: 我以月夜寄相思.txt F:\我以月夜寄相思.txt Process finished with exit code 0
这样我们既可以找到最后一个被修改的文件是啥了。
python,os
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?