python os用法详解 - 博客园
文章推薦指數: 80 %
python os用法详解. 前言:在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告 ...
首页
新闻
博问
专区
闪存
班级
我的博客
我的园子
账号设置
简洁模式...
退出登录
注册
登录
工具时间
每天逼着自己写点东西,终有一天会为自己的变化感动的。
这是一个潜移默化的过程,每天坚持编编故事,自己不知不觉就会拥有故事人物的特质的。
Explicitisbetterthanimplicit.(清楚优于含糊)
pythonos用法详解
前言:在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于os模块,所以今天整理下比较常用的几个方法。
网上这方面资料也很多,每次整理,只是对自己所学的知识进行梳理,从而加深对某个模块的使用。
那我们看看他们的使用吧:
获取文件所在路径
importos
♦1.os.path.dirname(__file__) 获取当前文件的所在路径
输入:
importos
fromreptileimport*
print(os.path.dirname(__file__))
输出:
F:\Python\python.exeF:/Python/pag/dict_usage.py
F:/Python/pag
1-1.print(os.path.dirname(os.path.dirname(__file__))) 获取当前文件的所在目录的上级路径
输入:
importos
fromreptileimport*
print(os.path.dirname(os.path.dirname(__file__)))
输出:
F:\Python\python.exeF:/Python/pag/dict_usage.py
F:/Python
1-2.print(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) 获取当前文件的所在目录的上级目录的上级路径
输入:
importos
fromreptileimport*
print(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
输出:
F:\Python\python.exeF:/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.exeF:/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.exeF:/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.exeF:/Python/pag/dict_usage.py
False
♦11.os.path.exists()——检验指定的对象是否存在。
是True,否则False.例:
输入:
print(os.path.exists('./lib'))
输出:
F:\Python\python.exeF:/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.exeF:/Python/pag/dict_usage.py
('E:','\requests-2.18.4.tar.gz.asc')
此处只是把前后两部分分开而已。
就是找最后一个‘/‘。
看例子:
输入:
print(os.path.split('E:\'))
输出:
F:\Python\python.exeF:/Python/pag/dict_usage.py
('E:\\','')
♦13.os.system()——执行shell命令。
例:
注意:此处运行shell命令时,如果要调用python之前的变量,可以用如下方式:
var=123
os.environ[‘var‘]=str(var)//注意此处[]内得是“字符串”
os.system(‘echo$var‘)
♦14. os.chdir()——改变目录到指定目录
输入:
#!/usr/bin/python
#-*-coding:UTF-8-*-
importos,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.exeF:/Python/pag/dict_usage.py
456
♦16.os.path.abspath()——获得绝对路径。
输入:
print(os.path.abspath('.'))
输出:
F:\Python\python.exeF:/Python/pag/dict_usage.py
F:\Python\pag
♦17.os.path.join(path,name)——连接目录和文件名。
输入:
print(os.path.join('F:\','lavu.exl'))
输出:
F:\Python\python.exeF:/Python/pag/dict_usage.py
F:\\lavu.exl
♦18.os.path.basename(path)——返回文件名
输入:
print(os.path.basename('F:\QCExplorer.ini'))
输出:
F:\Python\python.exeF:/Python/pag/dict_usage.py
QCExplorer.ini
♦19.os.path.dirname(path)——返回文件路径
输入:
print(os.path.dirname('F:\QCExplorer.ini'))
输出:
F:\Python\python.exeF:/Python/pag/dict_usage.py
F:\
♦20.获得当前程序所在的实际目录
输入:
importos
importsys
if__name__=="__main__":
printos.path.realpath(sys.argv[0])
printos.path.split(os.path.realpath(sys.argv[0]))
printos.path.split(os.path.realpath(sys.argv[0]))[0]
输出:
F:\Python\python.exeF:/Python/pag/dict_usage.py
F:\Python\pag\dict_usage.py
('F:\\Python\\pag','dict_usage.py')
F:\Python\pag
♦21.查看文件时间
♦os.path.getmtime(path):文件或文件夹的最后修改时间,从新纪元到访问时的秒数。
♦os.path.getatime(path):文件或文件夹的最后访问时间,从新纪元到访问时的秒数。
♦os.path.getctime(path):文件或文件夹的创建时间,从新纪元到访问时的秒数。
>>>os.path.getmtime('D:\\pythontest\\ostest\\hello.py')
1481695651.857048
>>>os.path.getatime('D:\\pythontest\\ostest\\hello.py')
1481687717.8506615
>>>os.path.getctime('D:\\pythontest\\ostest\\hello.py')
1481687717.8506615
22.os.sep可以取代操作系统特定的路径分割符。
23.os.linesep字符串给出当前平台使用的行终止符
>>>os.linesep
'\r\n'#Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
>>>os.sep
'\\'#Windows
>>>
24.os.path.splitext():分离文件名与扩展名
>>>os.path.splitext('a.txt')
('a','.txt')
25.os.path.normpath(path):规范path字符串形式
重点:用法
♦在Python的os模块中提供了system()用来执行系统命令。
比如我们要执行E:\\test_object\\目录 下的all_test.py文件,可以这样来实现:
#coding=utf-8
importos
os.system(‘E:\\test_object\\all_test.py‘)
或者
importos
os.chdir("E:\\test_object")
os.system(‘Pythonall_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=lambdafn:os.path.getmtime(result_dir+"\\"+fn))
print('最新的文件为:'+lists[-1])
file=os.path.join(result_dir,lists[-1])
print(file)
输出:
F:\Python\python.exeF:/Python/pag/dict_usage.py
最新的文件为:我以月夜寄相思.txt
F:\我以月夜寄相思.txt
Processfinishedwithexitcode0
这样我们既可以找到最后一个被修改的文件是啥了。
实例:在自动化测试过程中,常常需要发送邮件,将最新的测试报告文档发送给相关人员查看,这是就需要查找最新文件的功能。
举例:查找文件夹下最新的文件。
代码如下:
importos
defnew_file(test_dir):
#列举test_dir目录下的所有文件(名),结果以列表形式返回。
lists=os.listdir(test_dir)
#sort按key的关键字进行升序排序,lambda的入参fn为lists列表的元素,获取文件的最后修改时间,所以最终以文件时间从小到大排序
#最后对lists元素,按文件修改时间大小从小到大排序。
lists.sort(key=lambdafn:os.path.getmtime(test_dir+'\\'+fn))
#获取最新文件的绝对路径,列表中最后一个值,文件夹+文件名
file_path=os.path.join(test_dir,lists[-1])
returnfile_path
#返回D:\pythontest\ostest下面最新的文件
printnew_file('D:\\systemfiles\\workspace\\selenium\\email126pro\\email126\\report')
运行结果:
最后再啰嗦一句,关于lambda的用法(python中单行的最小函数):
key=lambdafn:os.path.getmtime(test_dir+'\\'+fn)
#相当于
defkey(fn):
returnos.path.getmtime(test_dir+'\\'+fn)
部分转自:python之os模块
每天一点点,感受自己存在的意义。
posted@
2018-06-0723:44
tooltime
阅读(6059)
评论(1)
编辑
收藏
举报
刷新评论刷新页面返回顶部
Copyright©2022tooltime
Poweredby.NET6onKubernetes
延伸文章資訊
- 1python中os包的用法 - 程式人生
1 建立目錄以及判斷是否存在,如果不存在則建立import os # 建立的目錄path = \
- 2Python os.getcwd()用法及代碼示例- 純淨天空
用法: os.getcwd(). 參數:不需要任何參數。 返回值:此方法返回代表當前工作目錄的字符串。 示例1: 使用 os.getcwd() 獲取當前工作目錄的方法. # Python pro...
- 3python os用法總結- IT閱讀
本篇文章給大家分享了關於python os用法的相關總結性內容,對此有學習需要朋友參考下吧。 前言:在自動化測試中,經常需要查詢操作檔案,比如說查詢 ...
- 4Python 速查手冊- 12.5 基本檔案與目錄處理os 與os.path
本篇文章介紹Python 標準程式庫的os 與os.path 模組。 ... os 與os.path 為處理作業系統相關及目錄路徑的模組(module) , os 有以下的常用常數 ...
- 5Python os.path.dirname()用法及代碼示例- 純淨天空
os.path.dirname() Python中的方法用於從指定路徑獲取目錄名稱。 用法: os.path.dirname(path). 參數: path:代表文件係統路徑的path-like對象。