python os用法总结


Posted in Python onJune 08, 2018

前言:在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于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命令。例:

python os用法总结

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

这样我们既可以找到最后一个被修改的文件是啥了。

Python 相关文章推荐
CentOS6.5设置Django开发环境
Oct 13 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
Dec 12 Python
Django实现分页功能
Jul 02 Python
Django的用户模块与权限系统的示例代码
Jul 24 Python
python 模拟创建seafile 目录操作示例
Sep 26 Python
wxPython绘图模块wxPyPlot实现数据可视化
Nov 19 Python
Python使用enumerate获取迭代元素下标
Feb 03 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
Mar 24 Python
使用Keras预训练模型ResNet50进行图像分类方式
May 23 Python
pycharm 的Structure界面设置操作
Feb 05 Python
requests在python中发送请求的实例讲解
Feb 17 Python
python 判断字符串当中是否包含字符(str.contain)
Jun 01 Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 #Python
浅谈Pandas 排序之后索引的问题
Jun 07 #Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
Jun 07 #Python
python pandas 对series和dataframe的重置索引reindex方法
Jun 07 #Python
浅谈Series和DataFrame中的sort_index方法
Jun 07 #Python
解决DataFrame排序sort的问题
Jun 07 #Python
python爬取网页内容转换为PDF文件
Jul 28 #Python
You might like
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
Could not load type System.ServiceModel.Activation.HttpModule解决办法
2012/12/29 PHP
php计算年龄精准到年月日
2015/11/17 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
php微信公众号开发之简答题
2018/10/20 PHP
关于图片按比例自适应缩放的js代码
2011/10/30 Javascript
jquery键盘事件使用介绍
2011/11/01 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
利用原生JavaScript获取元素样式只是获取而已
2014/10/08 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
AngularJs 指令详解及示例代码
2016/09/01 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
angularjs实现首页轮播图效果
2017/04/14 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
浅谈Vue.nextTick 的实现方法
2017/10/25 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
springboot+vue实现文件上传下载
2020/11/17 Vue.js
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
jquery实现点击左右按钮切换图片
2021/01/27 jQuery
[07:37]DOTA2-DPC中国联赛2月2日Recap集锦
2021/03/11 DOTA
Python使用defaultdict读取文件各列的方法
2017/05/11 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
Django如何将URL映射到视图
2019/07/29 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
python3 re返回形式总结
2020/11/20 Python
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
vue项目实现分页效果
2021/03/24 Vue.js
交通工程专业推荐信
2014/09/06 职场文书
golang 实现对Map进行键值自定义排序
2021/04/28 Golang
Java Spring Lifecycle的使用
2022/05/06 Java/Android