網(wǎng)站建設(shè)如何選擇域名鄭州網(wǎng)站推廣多少錢
為什么要講這一篇,主要是因?yàn)檫@個(gè)在自動(dòng)化測試框架或者腳本的編寫的時(shí)候會(huì)用到,還是比較方便的。


看上述兩個(gè)函數(shù)。getcwd()、chdir()。使用 os.getcwd() 函數(shù)獲得當(dāng)前工作目錄。使用 os.chdir()函數(shù)改變當(dāng)前工作目錄。所以在用chdir()函數(shù)的時(shí)候別忘記指定一個(gè)文件路徑。

處理文件名和目錄名

看這三個(gè)例子。os.path.join() 函數(shù)從一個(gè)或多個(gè)路徑片段中構(gòu)造一個(gè)路徑名。在這個(gè)例子中, 它僅僅是簡單的拼接字符串。
第二個(gè)例子就是增加了一個(gè)不一樣的斜杠,不過問題不大,路徑一樣可以拼接,文件依然可以訪問。
os.path.expanduser() 用來將包含~符號(hào)(表示當(dāng)前用戶Home 目錄)在任何有 Home 目錄概念的操作系統(tǒng)上(包括 Linux,Mac OS X 和 Windows),這個(gè)函數(shù)都能工作。
分割路徑

第一個(gè)print,split 函數(shù)分割一個(gè)完整路徑并返回目錄和文件名。
第二個(gè)print,你是不是看著變量就是頭皮發(fā)麻,這是一種寫法,知道就好。多個(gè)值時(shí)應(yīng)該使用多變量賦值,將split函數(shù)的返回值賦 值給一個(gè)二元組。每個(gè)變量獲得了返回元組中的對(duì)應(yīng)元素的 值。
第三個(gè)print,獲取到了第二個(gè)print的文件名稱,我們又用了os.path.splitext() 函數(shù),分割一個(gè)文件名并返回短文件名和擴(kuò)展名??梢允褂猛瑯拥募夹g(shù)將它們的值 賦值給不同的變量。

羅列目錄內(nèi)容
首先是確認(rèn)目錄種有文件。必不可少。其次glob 模塊是 Python 標(biāo)準(zhǔn)庫中的另一個(gè)工具,它可以通過編程的方法獲得一個(gè)目錄的內(nèi)容,并且它使用熟悉的命令行下的通配符。

文件中我創(chuàng)建,qing.py以及qingan.py文件。上述的代碼,*用于匹配,不論你是1qing還是qing1文件都是可以匹配到的。其次我添加了要求就是匹配.py類型的文件。所以,它回自動(dòng)匹配當(dāng)前文件中所有帶qing.py的文件。
獲取文件元信息
每一個(gè)現(xiàn)代文件系統(tǒng)都對(duì)文件存儲(chǔ)了元信息: 創(chuàng)建時(shí)間,最后修改時(shí)間,文件大小等等。那么我們?nèi)绾潍@取查看呢。
import os
import time
i = os.stat('book.py')
print(i)
o = time.localtime(i.st_mtime)
print(o)
# os.stat_result(st_mode=33206, st_ino=4503599627371288, st_dev=2027176494, st_nlink=1, st_uid=0, st_gid=0, st_size=100, st_atime=1643383767, st_mtime=1643383767, st_ctime=1637983494)
# time.struct_time(tm_year=2022, tm_mon=1, tm_mday=28, tm_hour=23, tm_min=29, tm_sec=27, tm_wday=4, tm_yday=28, tm_isdst=0)
i = os.stat('book.py')輸出的結(jié)果可以很明確的看到里面的一些信息,st_mtime最后的修改時(shí)間,那么我們需要更加的詳細(xì)的最后修改時(shí)間信息應(yīng)該怎么辦?time.localtime(i.st_mtime),時(shí)間戳調(diào)用。os.stat()函數(shù)返回值的 st_mtime 屬性轉(zhuǎn)換成更有用的包含年、月、日、小時(shí)、分鐘、秒的結(jié)構(gòu)體。
構(gòu)造絕對(duì)路徑
os.path.realpath()函數(shù),很簡單,直接看例子:

這樣就能得到一個(gè)文件的絕對(duì)路徑了。
實(shí)例上手
import os
class Config:
'''
項(xiàng)目下所有文件的相對(duì)路徑
'''
Base_Path = os.path.abspath(os.path.dirname(os.path.abspath(__file__)) + '/..')
Base_readd = Base_Path + r'\casetest\case02.xlsx'
ChromeDriver_Path = Base_Path + r'\lib\chromedriver.exe'
FirefoxDriver_Path = Base_Path + r'\lib\geckodriver.exe'
re = Config()
這只是一個(gè)舉例,這樣可以直接定位到當(dāng)前的文件,通過路徑拼接的方式,直接定位到想要定位的文件夾或者文件。還是比較方便的。也可以用上面所講的知識(shí)點(diǎn)。