文章目錄
- os子產品簡介
- os子產品常用方法
-
- 目錄檔案操作
- 系統操作相關
- 檔案路徑操作方法
- sys子產品概述
- sys子產品常用方法
os子產品簡介
os子產品提供了多數作業系統的功能接口函數。當os子產品被導入後,它會自适應于不同的作業系統平台,根據不同的平台進行相應的操作,在python程式設計時,經常和檔案、目錄打交道,是以離不了os子產品
os子產品常用方法
目錄檔案操作
-
擷取目前執行腳本的工作路徑os.getcwd()
-
擷取目前執行腳本的工作路徑os.chdir("dirname")
-
擷取目前執行腳本目錄的父級的目錄的字元串,一般表示為".."。os.pardir
-
在目前執行的腳本的目錄下建立多層目錄,若目錄已經存在則會報錯os.makedirs('dir1/dir2')
-
可删除多層目錄,但前提是目錄必須為空若不為空,則會停止在不為空的那一層目錄os.removedirs('dirname')
-
在目前執行的腳本的目錄下建立單層目錄,若目錄已經存在則會報錯os.mkdir('dirname')
-
删除單層目錄,若目錄不為空則無法删除os.rmdir('dirname')
-
列出指定的目錄下的所有檔案和子目錄,包括隐藏檔案,并以清單方式傳回,若不指定目錄,則為目前執行檔案的目錄os.listdir(path)
-
删除一個檔案os.remove(path)
-
重命名一個檔案或者目錄os.rename("oldname","newname")
-
擷取檔案或者目錄的資訊,傳回的是一個類對象os.stat('path')
系統操作相關
-
輸出作業系統特定的路徑分隔符,win為‘\’,linux為‘/’os.sep
-
輸出作業系統的行終止符,win為‘\t\n’,linux為‘\n’os.linesep
-
輸出作業系統分割檔案路徑的字元串,win為; linux為:os.pathsep
-
輸出字元串表示目前使用平台。win為nt,linux為posixos.name
-
擷取系統環境變量os.environ
-
執行系統指令,直接輸出,無法指派給變量os.system("command")
檔案路徑操作方法
-
傳回一個檔案的标準化絕對路徑os.path.abspath(path)
-
将一個路徑分割為目錄和檔案名兩部分,并以元祖形式傳回os.path.split(path)
-
傳回path的目錄,即os.path.split(path)結果的第一部分os.path.dirname(path)
-
傳回path的檔案名,如果以‘/’或者‘'結尾,那麼會傳回空值,即os.path.split(path)結果的第二部分os.path.basename(path)
-
如果path存在,則傳回True,否則傳回Falseos.path.exists(path)
-
判斷path是否為絕對路徑,是則傳回True,否則傳回Falseos.path.isabs(path)
-
判斷path是否一個存在的檔案,是則傳回True,否則傳回Falseos.path.isfile(path)
-
判斷path是否是一個存在的目錄,是則傳回True,否則傳回Falseos.path.isdir(path)
-
将多個路徑組合後傳回,第一個絕對路徑之前的參數會被忽略os.path.join(path1,[path2[,....])
-
傳回path所指向的檔案或者目錄的最後讀取時間os.path.getatime(path)
-
傳回path所指向的檔案或者目錄的最後修改時間os.path.getmtime(path)
sys子產品概述
這個子產品可供通路由解釋器使用或維護的變量和與解釋器進行互動的函數,sys是和解釋器系統的互動,而os是和作業系統低層進行互動,這是兩者差別
sys子產品常用方法
-
sys.argv
:
實作從程式外部向程式傳遞參數,并将參數儲存在清單中以供調用
#!/usr/bin/env python
import sys
print sys.argv[0]
print sys.argv[1]
################
python sys.py argv1
#sys.py
#argv1
-
程式中間的退出,arg指定退出碼,0代碼為正常退出sys.exit([arg])
-
擷取系統目前編碼sys.getdefaultencoding()
-
設定目前系統的編碼sys.setdefaultencoding(arg)
-
擷取檔案系統目前編碼sys.getfilesystemencoding()
-
擷取指定子產品搜尋路徑的字元串集合,可以将寫好的子產品放在得到的某個路徑下,就可以在程式中import時正确找到,類似于linux中的PATH環境變量sys.path
-
stdin , stdout , 以及stderr 變量包含與标準I/O 流對應的流對象. 如果需要更好地控制輸出,而print 不能滿足你的要求, 它們就是你所需要的. 你也可以替換它們, 這時候你就可以重定向輸出和輸入到其它裝置( device ), 或者以非标準的方式處理它們sys.stdin,sys.stdout,sys.stderr
# 簡單的進度條函數
import sys
import time
for i in range(10):
sys.stdout.write('#') #向螢幕輸出#字元号
time.sleep(0.1)
sys.stdout.flush() #由于輸出字元會先寫在緩存中,是以不加此參數,
#号會在循環完成後一起輸出