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 相关文章推荐
使用python编写android截屏脚本双击运行即可
Jul 21 Python
利用Psyco提升Python运行速度
Dec 24 Python
python爬虫之百度API调用方法
Jun 11 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
Aug 23 Python
python识别文字(基于tesseract)代码实例
Aug 24 Python
python 批量修改 labelImg 生成的xml文件的方法
Sep 09 Python
python selenium操作cookie的实现
Mar 18 Python
Python中对象的比较操作==和is区别详析
Feb 12 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
Mar 02 Python
Python 居然可以在 Excel 中画画你知道吗
Feb 15 Python
使用Python开发冰球小游戏
Apr 30 Python
Django框架中视图的用法
Jun 10 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-fpm 参数的深入理解
2013/06/03 PHP
PHP语法自动检查的Vim插件
2014/08/11 PHP
yii数据库的查询方法
2015/12/28 PHP
php实现word转html的方法
2016/01/22 PHP
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
js 变量类型转换常用函数与代码[比较全]
2009/12/01 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
使用Nodejs开发微信公众号后台服务实例
2014/09/03 NodeJs
JS中FRAME的操作问题实例分析
2014/10/21 Javascript
angularJS 入门基础
2015/02/09 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
2016/05/17 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
angularjs项目的页面跳转如何实现(5种方法)
2017/05/25 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
jackson解析json字符串,首字母大写会自动转为小写的方法
2017/12/22 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
React之PureComponent的使用作用
2018/07/10 Javascript
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
python实现大学人员管理系统
2019/10/25 Python
python实现IOU计算案例
2020/04/12 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
女装和独特珠宝:Sundance Catalog
2018/09/19 全球购物
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
台湾家适得:Homeget
2019/02/11 全球购物
荷兰天然和有机产品网上商城:BigGreenSmile.nl
2020/07/26 全球购物
金融专业个人求职信
2013/09/22 职场文书
程序员岗位职责
2013/11/11 职场文书
留学推荐信范文
2014/05/10 职场文书
2014迎国庆演讲稿
2014/09/19 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书