python找不到os模組 python之os模組

2021-10-13 06:58:16 字數 4051 閱讀 5273

在自動化測試中,經常需要查詢操作檔案,比如說查詢配置檔案(從而讀取配置檔案的資訊),查詢測試報告(從而傳送測試報告郵件),經常要對大量檔案和大量路徑進行操作,這就依賴於os模組,所以今天整理下比較常用的幾個方法。網上這方面資料也很多,每次整理,只是對自己所學的知識進行梳理,從而加深對某個模組的使用。

1.當前路徑及路徑下的檔案

os.getcwd():檢視當前所在路徑。

os.listdir(path):列舉目錄下的所有檔案。返回的是列表型別。

>>> import os

>>> os.getcwd()

'd:\\pythontest\\ostest'

>>> os.listdir(os.getcwd())

['hello.py', 'test.txt']

2.絕對路徑

os.path.abspath(path):返回path的絕對路徑。

>>> os.path.abspath('.')

'd:\\pythontest\\ostest'

>>> os.path.abspath('..')

'd:\\pythontest'

3.檢視路徑的資料夾部分和檔名部分

os.path.split(path):將路徑分解為(資料夾,檔名),返回的是元組型別。可以看出,若路徑字串最後乙個字元是\,則只有資料夾部分有值;若路徑字串中均無\,則只有檔名部分有值。若路徑字串有\,且不在最後,則資料夾和檔名均有值。且返回的資料夾的結果不包含\.

os.path.join(path1,path2,...):將path進行組合,若其中有絕對路徑,則之前的path將被刪除。

>>> os.path.split('d:\\pythontest\\ostest\\hello.py')

('d:\\pythontest\\ostest', 'hello.py')

>>> os.path.split('.')

>>> os.path.split('d:\\pythontest\\ostest\\')

('d:\\pythontest\\ostest', '')

>>> os.path.split('d:\\pythontest\\ostest')

('d:\\pythontest', 'ostest')

>>> os.path.join('d:\\pythontest', 'ostest')

'd:\\pythontest\\ostest'

>>> os.path.join('d:\\pythontest\\ostest', 'hello.py')

'd:\\pythontest\\ostest\\hello.py'

>>> os.path.join('d:\\pythontest\\b', 'd:\\pythontest\\a')

'd:\\pythontest\\a'

os.path.dirname(path):返回path中的資料夾部分,結果不包含'\'

>>> os.path.dirname('d:\\pythontest\\ostest\\hello.py')

'd:\\pythontest\\ostest'

>>> os.path.dirname('.')

>>> os.path.dirname('d:\\pythontest\\ostest\\')

'd:\\pythontest\\ostest'

>>> os.path.dirname('d:\\pythontest\\ostest')

'd:\\pythontest'

os.path.basename(path):返回path中的檔名。

>>> os.path.basename('d:\\pythontest\\ostest\\hello.py')

'hello.py'

>>> os.path.basename('.')

>>> os.path.basename('d:\\pythontest\\ostest\\')

>>> os.path.basename('d:\\pythontest\\ostest')

'ostest'

4.檢視檔案時間

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

5.檢視檔案大小

os.path.getsize(path):檔案或資料夾的大小,若是資料夾返回0。

>>> os.path.getsize('d:\\pythontest\\ostest\\hello.py')

58l>>> os.path.getsize('d:\\pythontest\\ostest')

0l6.檢視檔案是否存在

os.path.exists(path):檔案或資料夾是否存在,返回true 或 false。

>>> os.listdir(os.getcwd())

['hello.py', 'test.txt']

>>> os.path.exists('d:\\pythontest\\ostest\\hello.py')

true

>>> os.path.exists('d:\\pythontest\\ostest\\hello.py')

true

>>> os.path.exists('d:\\pythontest\\ostest\\hello1.py')

false

7.一些表現形式引數

os中定義了一組檔案、路徑在不同作業系統中的表現形式引數,如:

>>> os.sep

>>> os.extsep

>>> os.pathsep

>>> os.linesep

'\r\n'

8.例項說明

在自動化測試過程中,常常需要傳送郵件,將最新的測試報告文件傳送給相關人員檢視,這是就需要查詢最新檔案的功能。

舉例:查詢檔案夾下最新的檔案。

**如下:

import os

def new_file(test_dir):

#列舉test_dir目錄下的所有檔案(名),結果以列表形式返回。

lists=os.listdir(test_dir)

#sort按key的關鍵字進行公升序排序,lambda的入參fn為lists列表的元素,獲取檔案的最後修改時間,所以最終以檔案時間從小到大排序

#最後對lists元素,按檔案修改時間大小從小到大排序。

lists.sort(key=lambda fn:os.path.getmtime(test_dir+'\\'+fn))

#獲取最新檔案的絕對路徑,列表中最後乙個值,資料夾+檔名

file_path=os.path.join(test_dir,lists[-1])

return file_path

#返回d:\pythontest\ostest下面最新的檔案

print new_file('d:\\system files\\workspace\\selenium\\email126pro\\email126\\report')

執行結果:

最後再囉嗦一句,關於lambda的用法(python中單行的最小函式):

key=lambda fn:os.path.getmtime(test_dir+'\\'+fn)

#相當於

def key(fn):

return os.path.getmtime(test_dir+'\\'+fn)

py之os模組練習

1.在當前目錄新建目錄img,裡面包含多個檔案,檔名各不相同 x4g5.png 2.將當前img目錄所有以.png結尾的字尾名改為.jpg import random import string import os def gen code len 4 隨機生成4位驗證碼 li random.sam...

c DllImport 找不到指定模組

兩年前的乙個專案,基於身份證閱讀器的開發,之前都是在公司電腦上開發維護等,今天有需要用到自己的筆記本,只有vs2008和mysql5.5,以為足夠,興致勃勃的拿到客戶那裡現場解決問題,f5執行程式,程式丟擲異常 無法載入synidcardapi.dll 找不到指定的模組 網上找了半天資料,大概一下解...

cmd執行Python指令碼提示找不到模組問題

windows關於命令列執行python指令碼,提示找不到模組的問題,我 本人也是在pycharm上執行沒毛病的,後來在本地搞了個jenkins做定時任務,誰知道就提示找不到模組 後來才想起來,把檔案裡的所有匯入包的路徑都從專案根路徑開始匯入,我的問題就這麼解決了,完美。之前遇到過同樣的問題,在這裡...