python os用法总结
作者:疯了的小蜗 发布时间:2021-03-16 19:30:16
前言:在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于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
重点:用法
♦在Python 的os 模块中提供了system()用来执行系统命令。
比如我们要执行E:\\test_object\\目录
下的all_test.py 文件,可以这样来实现:
#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‘)
♦组合用法:
通过os.listdir()可以获取目录下的所有文件
通过os.path.getmtime(path) #返回在此path下最后一次修改的时间
通过os.path.join(path, name)连接目录和文件名
输入:
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
这样我们既可以找到最后一个被修改的文件是啥了。
来源:https://www.cnblogs.com/insane-Mr-Li/p/9153394.html
猜你喜欢
- gchart:基于google图表API的jquery组件全攻略——入门gchart是基于google图表API的jquery组件。使用gc
- 本文实例讲述了Python全局变量用法。分享给大家供大家参考,具体如下:全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量。今
- 类似于and操作类似于or操作# 类型转换# sortedli=[2,45,1,67,23,10]li.sort() #list的排序方法p
- 数据类型的强制转换如果要将一个数据转换成另一个数据类型,只需要将其放入相应类型的函数中去。Number类型的数据转换强制转换为int可以转换
- 环境:Ubuntu14.04,tensorflow=1.4(bazel源码安装),Anaconda python=3.6声明变量主要有两种方
- DataFrame对象的创建,修改,合并import pandas as pdimport numpy as np创建DataFrame对象
- 1. A List Apart CSS TopicsA List Apart是一个CSS优秀文章的收集网站,从1999年开始收集文章,关注最
- 本文介绍了保护MySQL数据库中重要数据受外部攻击的六个注意事项,以减少面临的风险。与自动的数据库备份不同,对系统管理员来说,保护数据免受未
- asp之家注:本文介绍的长文章分页方法不错,作者分析的很详细,用分页符来手动为长文章分页,应该是最好的长文章分页方法,我们不必担心会把一些代
- 如何提高SQL Server数据库的性能,该从哪里入手呢?笔者认为,该遵循从外到内的顺序,来改善数据库的运行性能。如下图: 第一层
- 本文实例主要实现给出任意字符串,获取字符串中某字符的位置以及出现的总次数。实现该功能代码的时候可以使用函数enumerate来将字符串分离成
- 目录一、pyecharts绘制饼图语法简介二、绘制普通饼图三、绘制圆环图四、绘制饼图-玫瑰图一、pyecharts绘制饼图语法简介饼图主要用
- 有时候我们需要将一个对象的某些属性选取出来,比方说我们有一个用数组表示的数据库表,我们需要一些函数来 select (选取) 几个字段:fu
- 当我们使用访问一个没有声明的变量时,JS会报错;而当我们给一个没有声明的变量赋值时,JS不会报错,相反它会认为我们是要隐式申明一个全局变量。
- 记得很早以前看到过这样的一段介绍:想象你在逛街边的一家书店,如果最终你没有购买任何图书就直接离开了,店长并不会知道你来过。但是如果你买了书,
- 简介ORA-10458: standby database requires recoveryORA-01196: 文件 1 由于介质恢复会
- 修改MySQL下的默认mysql数据库的user表,删除所有host为localhost记录,另外添加一些其他记录,重新启动MySQL服务器
- 实际上face_recognition这个项目尤其是dlib更适用于Linux系统。经过我的测试,在性能方面,编译同样规格的项目,这个工具在
- JS是一段一段执行的(以<script>标签来分割),执行每一段之前,都有一个“预编译”,预编译干的活是:声明所有var变量(初
- 启动targetcli时遭遇ImportError: cannot import name ALUATargetPortGrou