今天咱們來介紹一下os模塊中經常使用的一些方法,固然python中的os模塊中提供的使用方法有不少,可是這裏面小編會列舉出來一些和實際工做中應用的相關的方法,並且會有一些實際的例子方便你們對os模塊理解。好比os結合join、os結合dirname等等,那咱們接下來看看關於os模塊的使用吧。html
咱們能夠經過 Python入門os基礎來看一些os模塊的使用(咱們使用的是python3的環境)python
1.os.getcwd() 返回當前目錄shell
import os print (os.getcwd())
輸出結果:windows
E:\Project_case
2.os.listdir() 返回當前文件夾下面的文件名,經過列表的形式存儲函數
import os print (os.listdir('unittest_demo'))
查看結果:spa
['all_test.py', 'test_case', 'test_report']
3.os.path.dirname(os.path.realpath(__file__)) 獲取當前文件所在的絕對路徑操作系統
curpath = os.path.dirname(os.path.realpath(__file__)) print (curpath)
返回結果:code
E:\Project_case
4.os.path.join(a,b) 將b路徑追加到a後面orm
casepath = os.path.join(curpath, "case") reportpath = os.path.join(curpath, "report") print (curpath) print (casepath) print (reportpath)
查看返回的結果:htm
E:\Project_case
E:\Project_case\case
能夠在獲取到的路經上面追加新的路徑。這是一種簡化的寫法。
5.更多用法,參考以下
os模塊: os.sep 能夠取代操做系統特定的路徑分割符 os.linesep 字符串給出當前平臺使用的行終止符。例如,Windows使用'\r\n',Linux使用'\n' 而Mac使用'\r'。 os.name 字符串指示你正在使用的平臺。好比對於Windows,它是'nt',而對於Linux/Unix用戶,它是'posix' os.getcwd() 函數獲得當前工做目錄, os.getenv()和os.putenv() 函數分別用來讀取和設置環境變量。 os.listdir(dirname): 列出dirname下的目錄和文件 os.remove() 函數用來刪除一個文件。 os.curdir: 返回但前目錄('.') os.chdir(dirname): 改變工做目錄到dirname getatime(path):文件或文件夾的最後訪問時間,重新紀元到訪問時的秒數 getmtime(path):文件或文件夾的最後修改時間 getctime(path):文件或文件夾的建立時間
os.path模塊:
os.path.isfile()和os.path.isdir()函數分別檢驗給出的路徑是一個文件仍是目錄,返回bool值 os.path.exists()函數用來檢驗給出的路徑是否真地存在 返回bool os.path.getsize(name):得到文件大小,若是name是目錄返回0L 返回long 單位是字節 os.path.abspath(name):得到絕對路徑 os.path.normpath(path):規範path字符串形式, 結果通常狀況下把/變爲//,
os.path.split(name):將name分割成路徑名和文件名,結果爲(路徑名,文件名.文件擴展名)(事實上,若是你徹底使用目錄,它也會將最後一個目錄做爲文件名而分離,同時它不會判斷文件或目錄是否存在) os.path.splitext(filename):分離文件名與擴展名 結果爲(filename,擴展名) 若是參數爲一個路徑 則返回(路徑,'') os.path.join(path,name): 鏈接目錄與文件名或目錄 結果爲path/name os.path.basename(path):返回文件名 實際爲把path的最後一個"/"分割,返回後者。無論參數是一個路徑仍是文件 與os.path.split(name)相同 不一樣之處後者返回兩個值得元組 os.path.dirname(path): 返回文件路徑 實際爲把path的最後一個"/"分割,返回前者。無論參數是一個路徑仍是文件 os.system()函數用來運行shell命令
os模塊包裝了不一樣操做系統的通用接口,使用戶在不一樣操做系統下,可使用相同的函數接口,返回相同結構的結果。
os.name:返回當前操做系統名稱('posix', 'nt', 'os2', 'mac', 'ce' or 'riscos') os中定義了一組文件、路徑在不一樣操做系統中的表現形式參數,如 os.sep(文件夾分隔符,windows中是 \ ) os.extsep(擴展名分隔符,windows中是 . ) os.pathsep(目錄分隔符,windows中是 ; ) os.linesep(換行分隔符,windows中是 \r\n ) os中有大量文件、路徑操做的相關函數,如: listdir(path):列舉目錄下的全部文件 makedir(path):建立文件夾,注:建立已存在的文件夾將異常 makedirs(path):遞歸式的建立文件夾,注:建立已存在的文件夾將異常 remove(filename):刪除一個文件 rmdir(path):刪除一個文件夾,注:刪除非空的文件夾將異常 removedirs(path):遞歸的刪除文件夾,直到有一級的文件夾非空,注:文件夾路徑不能以'\'結束
rename(src,dst):給文件或文件夾更名(能夠改路徑,可是不能覆蓋目標文件) renames(src,dst):遞歸式的給文件或文件名更名 walk(path):列舉path下的全部文件、文件夾
os中與進程相關的操做,如:
execl(path):運行一個程序來替代當前進程,會阻塞式運行 _exit(n):退出程序 startfile(filename):用與文件關聯的程序運行,關聯程序打開後,當即返回 system(cmd):運行一個程序或命令,會當即返回,並在cmd執行完成後,會返回cmd退出代碼 os.path:在不一樣的操做系統中調用不一樣的模塊,是一個可import的模塊,這個模塊中提供不少有用的操做: abspath(path):返回path的絕對路徑,若path已是絕對路徑了,則保持。 basename(path):返回path中的文件名。 commonprefix(list):返回list中的統一前綴,用於得到一組字符串的左起相同的內容 dirname(path):返回path中的文件夾部分,結果不包含'\'
exists(path):文件或文件夾是否存在 getatime(path):文件或文件夾的最後訪問時間,重新紀元到訪問時的秒數 getmtime(path):文件或文件夾的最後修改時間 getctime(path):文件或文件夾的建立時間 getsize(path):文件或文件夾的大小,如果文件夾返回0 isabs(path):返回是不是絕對路徑 isfile(path):返回是不是文件路徑 isdir(path):返回是不是文件夾路徑 islink(path):返回是不是快捷方式 join(path1,path2,...):將path進行組合,若其中有絕對路徑,則以前的path將被刪除 normcase(path):轉換路徑中的間隔符 normpath(path):轉換路徑爲系統可識別的路徑 realpath(path):轉換路徑爲絕對路徑 split(path):將路徑分解爲(文件夾,文件名) splitext(path):將路徑分解爲(其他部分,.擴展名),若文件名中沒有擴展名,擴展名部分爲空字符串 在操做與系統不支持的對象時,拋出OSError異常。
>>> import os >>> os.path.exists('d:/assist') True >>> os.path.exists('d:/assist/getTeacherList.py') True >>> os.path.isfile('d:/assist') False >>> os.path.isfile('d:/assist/getTeacherList.py') True >>> os.makedirs('d:/assist/set') >>> os.path.exists('d:/assist/set') True
使用os.listdir命令 >>>workpath='目錄'
>>>if not os.list(workpath): >>>print '目錄爲空'
>>> def Test2(rootDir): ... for lists in os.listdir(rootDir): ... path = os.path.join(rootDir, lists) ... print path ... if os.path.isdir(path): ... Test2(path) ... >>> Test2("F:\zr")