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获得文件创建时间和修改时间的方法
Jun 30 Python
详解Python3中yield生成器的用法
Aug 20 Python
Windows下搭建python开发环境详细步骤
Jul 20 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
Dec 15 Python
django 实现电子支付功能的示例代码
Jul 25 Python
python 2.7.13 安装配置方法图文教程
Sep 18 Python
Python函数的参数常见分类与用法实例详解
Mar 30 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
Apr 18 Python
django 使用 PIL 压缩图片的例子
Aug 16 Python
python3实现微型的web服务器
Sep 03 Python
python3连接kafka模块pykafka生产者简单封装代码
Dec 23 Python
Django 设置多环境配置文件载入问题
Feb 25 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
ajax缓存问题解决途径
2006/12/06 PHP
允许phpmyadmin空密码登录的配置方法
2011/05/29 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
2014/06/24 PHP
thinkPHP学习笔记之安装配置篇
2015/03/05 PHP
PHP线程的内存回收问题
2016/07/08 PHP
Yii2实现让关联字段支持搜索功能的方法
2016/08/10 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
php利用ZipArchive类操作文件的实例
2020/01/21 PHP
easyUI实现(alert)提示框自动关闭的实例代码
2016/11/07 Javascript
浅谈mvvm-simple双向绑定简单实现
2018/04/18 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
微信小程序保存图片到相册权限设置
2020/04/09 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
js实现数字跳动到指定数字
2020/08/25 Javascript
小程序实现可拖动的悬浮按钮
2020/09/07 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
浅析python参数的知识点
2018/12/10 Python
Python netmiko模块的使用
2020/02/14 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
香港时装购物网站:ZALORA香港
2017/04/23 全球购物
留学推荐信怎么写
2014/01/25 职场文书
收银员岗位职责
2014/02/07 职场文书
机械制造专业毕业生求职信
2014/03/02 职场文书
计算机售后服务承诺书
2014/05/30 职场文书
大一新生检讨书
2014/10/29 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
员工福利申请报告
2015/05/15 职场文书
辅导员学期工作总结
2015/08/14 职场文书
教您:房贷工资收入证明应该怎么写?
2019/08/19 职场文书
vue+echarts实现多条折线图
2022/03/21 Vue.js
nginx 配置缓存
2022/05/11 Servers