Python 中的os、sys模組
sys模組
sys模組主要是用於提供對python直譯器相關的操作
函式
sys.argv #命令列引數List,第一個元素是程式本身路徑
sys.path #返回模組的搜尋路徑,初始化時使用PYTHONPATH環境變數的值
sys.modules.keys() #返回所有已經匯入的模組列表
sys.modules #返回系統匯入的模組欄位,key是模組名,value是模組
sys.exc_info() #獲取當前正在處理的異常類,exc_type、exc_value、exc_traceback當前處理的異常詳細資訊
sys.exit(n) #退出程式,正常退出時exit(0)
sys.hexversion #獲取Python解釋程式的版本值,16進位制格式如:0x020403F0
sys.version #獲取Python解釋程式的版本資訊
sys.platform #返回作業系統平臺名稱
sys.maxint # 最大的Int值
sys.stdout #標準輸出
sys.stdout.write(‘aaa’) #標準輸出內容
sys.stdout.writelines() #無換行輸出
sys.stdin #標準輸入
sys.stdin.read() #輸入一行
sys.stderr #錯誤輸出
sys.exc_clear() #用來清除當前執行緒所出現的當前的或最近的錯誤資訊
sys.exec_prefix #返回平臺獨立的python檔案安裝的位置
sys.byteorder #本地位元組規則的指示器,big-endian平臺的值是’big’,little-endian平臺的值是’little’
sys.copyright #記錄python版權相關的東西
sys.api_version #直譯器的C的API版本
sys.version_info #’final’表示最終,也有’candidate’表示候選,表示版本級別,是否有後繼的發行
sys.getdefaultencoding() #返回當前你所用的預設的字元編碼格式
sys.getfilesystemencoding() #返回將Unicode檔名轉換成系統檔名的編碼的名字
sys.builtin_module_names #Python直譯器匯入的內建模組列表
sys.executable #Python解釋程式路徑
sys.getwindowsversion() #獲取Windows的版本
sys.stdin.readline() #從標準輸入讀一行,sys.stdout.write(a) 螢幕輸出a
sys.setdefaultencoding(name) #用來設定當前預設的字元編碼(詳細使用參考文件)
sys.displayhook(value) #如果value非空,這個函式會把他輸出到sys.stdout(詳細使用參考文件)
常用功能
sys.arg 獲取位置引數
print(sys.argv)
執行該指令碼,加引數的列印結果
python3 m_sys.py 1 2 3 4 5
['m_sys.py', '1', '2', '3', '4', '5']
可以發現 sys.arg返回的是整個位置引數,類似於shell的$0 $1...
sys.exit(n) 程式退出,n是退出是返回的物件
sys.version 獲取python版本
>>> sys.version
'3.5.1 (v3.5.1:37a07cee5969, Dec 5 2015, 21:12:44) \n[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]'
sys.path 返回模組的搜尋路徑列表,可通過新增自定義路徑,來新增自定義模組
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python35.zip', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/plat-darwin', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages']
sys.platform 返回當前系統平臺 linux平臺返回linux,windows平臺返回win32,MAC返回darwin
>>> sys.platform
'darwin
sys.stdout.write() 輸出內容
>>> sys.stdout.write('asd')
asd3
>>> sys.stdout.write('asd')
asd3
>>> sys.stdout.write('as')
as2
進度條
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#pyversion:python3.5
#owner:fuzj
"""
sys 和python解析器相關
"""
import sys
import time
def view_bar(num,total):
rate = num / total
rate_num = int(rate * 100)
#r = '\r %d%%' %(rate_num)
r = '\r%s>%d%%' % ('=' * rate_num, rate_num,)
sys.stdout.write(r)
sys.stdout.flush
if __name__ == '__main__':
for i in range(0, 101):
time.sleep(0.1)
view_bar(i, 100)
效果:
====================================================================================================>100%
os模組
OS模組是Python標準庫中的一個用於訪問作業系統功能的模組,使用OS模組中提供的介面,可以實現跨平臺訪問
用於提供系統級別的操作
os.getcwd() 獲取當前工作目錄,即當前python指令碼工作的目錄路徑
os.chdir(dirname) 改變當前指令碼工作目錄;相當於shell下cd
os.curdir 返回當前目錄: (‘.’)
os.pardir 獲取當前目錄的父目錄字串名:(‘..’)
os.makedirs(‘dir1/dir2’) 可生成多層遞迴目錄
os.removedirs(‘dirname1’) 若目錄為空,則刪除,並遞迴到上一級目錄,如若也為空,則刪除,依此類推
os.mkdir(‘dirname’) 生成單級目錄;相當於shell中mkdir dirname
os.rmdir(‘dirname’) 刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當於shell中rmdir dirname
os.listdir(‘dirname’) 列出指定目錄下的所有檔案和子目錄,包括隱藏檔案,並以列表方式列印
os.remove() 刪除一個檔案
os.rename(oldname,new) 重新命名檔案/目錄
os.stat(‘path/filename’) 獲取檔案/目錄資訊
os.sep 作業系統特定的路徑分隔符,win下為,Linux下為/
os.linesep 當前平臺使用的行終止符,win下為\t\n,Linux下為\n
os.pathsep 用於分割檔案路徑的字串
os.name 字串指示當前使用平臺。win->’nt’; Linux->’posix’
os.system(bash command) 執行shell命令,直接顯示
os.environ 獲取系統環境變數
os.path.abspath(path) 返回path規範化的絕對路徑
os.path.split(path) 將path分割成目錄和檔名二元組返回
os.path.dirname(path) 返回path的目錄。其實就是os.path.split(path)的第一個元素
os.path.basename(path) 返回path最後的檔名。如何path以/或\結尾,那麼就會返回空值。即os.path.split(path)的第二個元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.lexists #路徑存在則返回True,路徑損壞也返回True
os.path.isabs(path) 如果path是絕對路徑,返回True
os.path.isfile(path) 如果path是一個存在的檔案,返回True。否則返回False
os.path.isdir(path) 如果path是一個存在的目錄,則返回True。否則返回False
os.path.join(path1[, path2[, …]]) 將多個路徑組合後返回,第一個絕對路徑之前的引數將被忽略
os.path.getatime(path) 返回path所指向的檔案或者目錄的最後存取時間
os.path.getmtime(path) 返回path所指向的檔案或者目錄的最後修改時間
os.path.commonprefix(list) #返回list(多個路徑)中,所有path共有的最長的路徑。
os.path.expanduser(path) #把path中包含的”~”和”~user”轉換成使用者目錄
os.path.expandvars(path) #根據環境變數的值替換path中包含的”
name”和” {name}”os.access(‘pathfile’,os.W_OK) 檢驗檔案許可權模式,輸出True,False
os.chmod(‘pathfile’,os.W_OK) 改變檔案許可權模式