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发送和接收邮件
Sep 27 Python
Pandas之MultiIndex对象的示例详解
Jun 25 Python
python在openstreetmap地图上绘制路线图的实现
Jul 11 Python
简单了解pytest测试框架setup和tearDown
Apr 14 Python
Python使用Numpy模块读取文件并绘制图片
May 13 Python
利用Python实现Excel的文件间的数据匹配功能
Jun 16 Python
你需要学会的8个Python列表技巧
Jun 24 Python
Python安装并操作redis实现流程详解
Oct 13 Python
Python实现自动整理文件的脚本
Dec 17 Python
python 列表推导和生成器表达式的使用
Feb 01 Python
python实现局部图像放大
Nov 17 Python
Python绘画好看的星空图
Mar 17 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
新的一年,新的期待:DC在2020年的四部动画电影
2020/01/01 欧美动漫
《APMServ 5.1.2》使用图解
2006/10/23 PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
php引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
2019/02/13 PHP
js中escape对应的C#解码函数 UrlDecode
2012/12/16 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
jQuery模拟物体自由落体运动(附演示与demo源码下载)
2016/01/21 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
axios发送post请求,提交图片类型表单数据方法
2018/03/16 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
2019/09/12 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
vue 页面跳转的实现方式
2021/01/12 Vue.js
基于python爬虫数据处理(详解)
2017/06/10 Python
python里 super类的工作原理详解
2019/06/19 Python
python实现最大优先队列
2019/08/29 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
html5贪吃蛇游戏使用63行代码完美实现
2013/06/25 HTML / CSS
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
毕业自我评价范文
2013/11/17 职场文书
幼儿园迎国庆65周年活动策划方案
2014/09/16 职场文书
征用土地赔偿协议书
2014/09/26 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
教师学习三严三实心得体会
2014/10/13 职场文书
社区党建工作汇报材料
2014/10/27 职场文书
文明家庭事迹材料
2014/12/20 职场文书
公积金具结保证书
2015/05/11 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android