python os用法總結(jié)
前言:在自動(dòng)化測(cè)試中,經(jīng)常需要查找操作文件,比如說查找配置文件(從而讀取配置文件的信息),查找測(cè)試報(bào)告(從而發(fā)送測(cè)試報(bào)告郵件),經(jīng)常要對(duì)大量文件和大量路徑進(jìn)行操作,這就依賴于os模塊,所以今天整理下比較常用的幾個(gè)方法。網(wǎng)上這方面資料也很多,每次整理,只是對(duì)自己所學(xué)的知識(shí)進(jìn)行梳理,從而加深對(duì)某個(gè)模塊的使用。
那我們看看他們的使用吧:
獲取文件所在路徑
import os
os.path.dirname(__file__) 獲取當(dāng)前文件的所在路徑
輸入:
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__))) 獲取當(dāng)前文件的所在目錄的上級(jí)路徑
輸入:
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__)))) 獲取當(dāng)前文件的所在目錄的上級(jí)目錄的上級(jí)路徑
輸入:
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()——得到當(dāng)前工作的目錄。
輸入:
print (os.getcwd())輸出:
F:\Python\pag
3.os.name()——判斷現(xiàn)在正在實(shí)用的平臺(tái),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__']
#以列表的形式全部列舉出來,其中沒有區(qū)分目錄和文件。
5.os.remove()——?jiǎng)h除指定文件
輸入:
print (os.remove('E:\python-3.2.3.amd64.msi'))
輸出:
F:\Python\python.exe F:/Python/pag/dict_usage.py
None
6. os.rmdir()——?jiǎng)h除指定目錄
7. os.mkdir()——?jiǎng)?chuàng)建目錄注意:這樣只能建立一層,
8.os.makedirs()——遞歸建立目錄
9.os.path.isfile()——判斷指定對(duì)象是否為文件。是返回True,否則False
10.os.path.isdir()——判斷指定對(duì)象是否為目錄。是True,否則False
輸入:
print (os.path.isdir('lib'))
輸出:
F:\Python\python.exe F:/Python/pag/dict_usage.py
False
11.os.path.exists()——檢驗(yàn)指定的對(duì)象是否存在。是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')
此處只是把前后兩部分分開而已。就是找最后一個(gè)‘/‘??蠢樱?/p>
輸入:
print (os.path.split('E:\ '))
輸出:
F:\Python\python.exe F:/Python/pag/dict_usage.py
('E:\\', ' ')
13.os.system()——執(zhí)行shell命令。例:

var=123
os.environ[‘var‘]=str(var) //注意此處[]內(nèi)得是 “字符串”
os.system(‘echo $var‘)
14. os.chdir()——改變目錄到指定目錄
輸入: #!/usr/bin/python # -*- coding: UTF-8 -*- import os, sys path = "/tmp" # 查看當(dāng)前工作目錄 retval = os.getcwd() print "當(dāng)前工作目錄為 %s" % retval # 修改當(dāng)前工作目錄 os.chdir( path ) # 查看修改后的工作目錄 retval = os.getcwd() print "目錄修改成功 %s" % retval 輸出: 當(dāng)前工作目錄為 /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()——獲得絕對(duì)路徑。
輸入:
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.獲得當(dāng)前程序所在的實(shí)際目錄
輸入:
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
重點(diǎn):用法
♦在Python 的os 模塊中提供了system()用來執(zhí)行系統(tǒng)命令。
比如我們要執(zhí)行E:\\test_object\\目錄
下的all_test.py 文件,可以這樣來實(shí)現(xiàn):
#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下最后一次修改的時(shí)間
- 通過os.path.join(path, name)連接目錄和文件名
輸入:
result_dir = ('F:\\')
lists=os.listdir(result_dir)
#重新按時(shí)間對(duì)目錄下的文件進(jìn)行排列
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
這樣我們既可以找到最后一個(gè)被修改的文件是啥了。
相關(guān)文章
好的Python培訓(xùn)機(jī)構(gòu)應(yīng)該具備哪些條件
python是現(xiàn)在開發(fā)的熱潮,大家應(yīng)該如何學(xué)習(xí)呢?許多人選擇自學(xué),還有人會(huì)選擇去培訓(xùn)結(jié)構(gòu)學(xué)習(xí),那么好的培訓(xùn)機(jī)構(gòu)的標(biāo)準(zhǔn)是什么樣的呢?下面跟隨腳本之家小編一起通過本文學(xué)習(xí)吧2018-05-05
用Python寫腳本,實(shí)現(xiàn)完全備份和增量備份的示例
下面小編就為大家分享一篇用Python寫腳本,實(shí)現(xiàn)完全備份和增量備份的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04
python 使用tkinter+you-get實(shí)現(xiàn)視頻下載器
這篇文章主要介紹了python 使用tkinter+you-get實(shí)現(xiàn)視頻下載器,幫助大家方便的下載視頻資源,感興趣的朋友可以了解下2020-11-11
Python3.2中的字符串函數(shù)學(xué)習(xí)總結(jié)
這篇文章主要介紹了Python3.2中的字符串函數(shù)學(xué)習(xí)總結(jié),本文講解了格式化類方法、查找 & 替換類方法、拆分 & 組合類方法等內(nèi)容,需要的朋友可以參考下2015-04-04
pandas讀取csv文件,分隔符參數(shù)sep的實(shí)例
今天小編就為大家分享一篇pandas讀取csv文件,分隔符參數(shù)sep的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Python實(shí)現(xiàn)的查詢mysql數(shù)據(jù)庫并通過郵件發(fā)送信息功能
這篇文章主要介紹了Python實(shí)現(xiàn)的查詢mysql數(shù)據(jù)庫并通過郵件發(fā)送信息功能,可實(shí)現(xiàn)Python針對(duì)mysql的查詢與宕機(jī)信息通過郵件發(fā)送的相關(guān)操作技巧,需要的朋友可以參考下2018-05-05
Pyecharts之特殊圖表的實(shí)現(xiàn)示例
本文主要介紹了Pyecharts之特殊圖表的實(shí)現(xiàn)示例,包括象形圖、水球圖和日歷圖的定制方法,具有一定的參考價(jià)值,感興趣的可以了解一下2025-01-01

