首页 > 编程 > Python > 正文

python os用法总结

2019-11-25 14:35:25
字体:
来源:转载
供稿:网友

前言:在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于os模块,所以今天整理下比较常用的几个方法。网上这方面资料也很多,每次整理,只是对自己所学的知识进行梳理,从而加深对某个模块的使用。

那我们看看他们的使用吧:

获取文件所在路径

import os
os.path.dirname(__file__) 获取当前文件的所在路径

输入:

import osfrom 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 osfrom 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 osfrom 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命令。例:

var=123
os.environ[‘var‘]=str(var) //注意此处[]内得是 “字符串”
os.system(‘echo $var‘)

14. os.chdir()――改变目录到指定目录

输入:#!/usr/bin/python# -*- coding: UTF-8 -*-import os, syspath = "/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 osimport sysif __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.pyF:/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-8import osos.system(‘E://test_object//all_test.py‘)或者import osos.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最新的文件为: 我以月夜寄相思.txtF:/我以月夜寄相思.txtProcess finished with exit code 0

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表