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中的单继承与多继承实例分析
May 10 Python
python 用for循环实现1~n求和的实例
Feb 01 Python
python 判断linux进程,并杀死进程的实现方法
Jul 01 Python
django settings.py 配置文件及介绍
Jul 15 Python
python实现最小二乘法线性拟合
Jul 19 Python
python输出决策树图形的例子
Aug 09 Python
Django实现文件上传下载功能
Oct 06 Python
pandas中的数据去重处理的实现方法
Feb 10 Python
详解django中Template语言
Feb 22 Python
基于Python脚本实现邮件报警功能
May 20 Python
python 深度学习中的4种激活函数
Sep 18 Python
使用gunicorn部署django项目的问题
Dec 30 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作的文本留言本的例子(三)
2006/10/09 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
学习javascript,实现插入排序实现代码
2011/07/31 Javascript
jQuery实现公告文字左右滚动的实例代码
2013/10/29 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
JS自定义对象实现Java中Map对象功能的方法
2015/01/20 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
Angularjs 创建可复用组件实例代码
2016/10/09 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
js实现放大镜特效
2017/05/18 Javascript
理解 javascript 中的函数表达式与函数声明
2017/07/07 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
原生js实现无缝轮播图效果
2021/01/28 Javascript
[01:01:36]Optic vs paiN 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python3.0 字典key排序
2008/12/24 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
Python 线程池用法简单示例
2019/10/02 Python
python3实现用turtle模块画一棵随机樱花树
2019/11/21 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
python字典的值可以修改吗
2020/06/29 Python
pycharm2020.2 配置使用的方法详解
2020/09/16 Python
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
欧克利英国官网:Oakley英国
2019/08/24 全球购物
英国行业制服供应商:Alexandra
2019/09/14 全球购物
物业保安主管岗位职责
2013/12/25 职场文书
房地产财务经理岗位职责
2015/04/08 职场文书
职工食堂管理制度
2015/08/06 职场文书
女人创业励志语录,句句蕴含能量,激发你的潜能
2019/08/20 职场文书