python os用法总结

2018-09-22 15:26

阅读:428

  前言:在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于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

  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, sys path = /tmp # 查看当前工作目录 retval = os.getcwd() print 当前工作目录为 %s % retval # 修改当前工作目录 os.chdir( path ) # 查看修改后的工作目录 retval = os.getcwd() print 目录修改成功 %s % retval 输出: 当前工作目录为 /目录修改成功 /tmp

  15.os.path.getsize()——获得文件的大小,如果为目录,返回0

  输入:
输出:
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

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


评论


亲,登录后才可以留言!