Python基础概念_11_标准库
標準庫
12 標準庫
12.1?簡介
Python 標準庫是隨Python附帶安裝的,它包含大量極其有用的模塊。熟悉
Python 標準庫是十分重要的,因為如果你熟悉這些庫中的模塊,那么你的大多數(shù)問題
都可以簡單快捷地使用它們來解決。
12.2 ?sys模塊
sys 模塊包含了系統(tǒng)指定的函數(shù)功能。一般我想了解些系統(tǒng)相關的信息時會用到這個模塊。
代碼示例:
import sys print("當前python版本的詳細信息") print(sys.version_info)?
執(zhí)行結果:
sys.version_info(major=3, minor=6, micro=0, releaselevel='final',serial=0)
注:我們可以看出當前python的版本是3.6.0
常用方法列表:
| 方法 | 功能描述 |
| sys.argv | 命令行參數(shù)List,第一個元素是程序本身路徑 |
| sys.path | 返回模塊的搜索路徑,初始化時使用PYTHONPATH環(huán)境變量的值 |
| sys.modules.keys() | 返回所有已經(jīng)導入的模塊列表 |
| sys.modules | 返回系統(tǒng)導入的模塊字段,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 | 返回操作系統(tǒng)平臺名稱 |
| sys.stdout | 標準輸出 |
| sys.stdout.write('aaa') | 標準輸出內容 |
| sys.stdout.writelines() | 無換行輸出 |
| sys.stdin | 標準輸入 |
| sys.stdin.read() | 輸入一行 |
| sys.stderr | 錯誤輸出 |
| sys.exc_clear() | 用來清除當前線程所出現(xiàn)的當前的或最近的錯誤信息 |
| sys.exec_prefix | 返回平臺獨立的python文件安裝的位置 |
| sys.byteorder | 本地字節(jié)規(guī)則的指示器,big-endian平臺的值是'big',little-endian平臺的值是'little' |
| sys.copyright | 記錄python版權相關的東西 |
| sys.api_version | 解釋器的C的API版本 |
| sys.version_info | 'final'表示最終,也有'candidate'表示候選,表示版本級別,是否有后繼的發(fā)行 |
| sys.getdefaultencoding() | 返回當前你所用的默認的字符編碼格式 |
| sys.getfilesystemencoding() | 返回將Unicode文件名轉換成系統(tǒng)文件名的編碼的名字 |
| 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非空,這個函數(shù)會把他輸出到sys.stdout(詳細使用參考文檔) |
12.3 ?os模塊
os模塊封裝了常用的文件以及目錄操作。
代碼示例:
import os os.makedirs("D:\\tmp\\xiaodang") os.rename("D:\\tmp\\xiaodang","G:\\tmp\\xiaodaobiancheng")執(zhí)行結果:
注:會在D盤的tmp下創(chuàng)建xiaodang目錄
將xiaodang改名為xiaodaobiancheng
常用方法列表:
| 方法 | 功能描述 |
| os.remove() | 刪除文件 |
| os.unlink() | 刪除文件 |
| os.rename() | 重命名文件 |
| os.listdir() | 列出指定目錄下所有文件 |
| os.chdir() | 改變當前工作目錄 |
| os.getcwd() | 獲取當前文件路徑 |
| os.mkdir() | 新建目錄 |
| os.rmdir() | 刪除空目錄(刪除非空目錄,使用shutil.rmtree()) |
| os.makedirs() | 創(chuàng)建多級目錄 |
| os.removedirs() | 刪除多級目錄 |
| os.stat(file) | 獲取文件屬性 |
| os.chmod(file) | 修改文件權限 |
| os.utime(file) | 修改文件時間戳 |
| os.name(file) | 獲取操作系統(tǒng)標識 |
| os.system() | 執(zhí)行操作系統(tǒng)命令 |
| os.execvp() | 啟動一個新進程 |
| os.fork() | 獲取父進程ID,在子進程返回中返回0 |
| os.execvp() | 執(zhí)行外部程序腳本(Uinx) |
| os.spawn() | 執(zhí)行外部程序腳本(Windows) |
| os.access(path,mode) | 判斷文件權限(詳細參考cnblogs) |
| os.wait() | 暫時未知 |
12.4? os.path模塊
這個模塊封裝了對系統(tǒng)路徑的常用的操作。
代碼示例:
import os.path print(os.path.abspath('practise.py')) print(os.path.split("D:\\tmp\\xiaodang"))執(zhí)行結果:
C:\demo\practise.py
('D:\\tmp', 'xiaodang')
常見方法列表:
| 方法 | 功能描述 |
| os.path.split(filename) | 將文件路徑和文件名分割(會將最后一個目錄作為文件名而分離) |
| os.path.splitext(filename) | 將文件路徑和文件擴展名分割成一個元組 |
| os.path.dirname(filename) | 返回文件路徑的目錄部分 |
| os.path.basename(filename) | 返回文件路徑的文件名部分 |
| os.path.join(dirname,basename) | 將文件路徑和文件名湊成完整文件路徑 |
| os.path.abspath(name) | 獲得絕對路徑 |
| os.path.splitunc(path) | 把路徑分割為掛載點和文件名 |
| os.path.normpath(path) | 規(guī)范path字符串形式 |
| os.path.exists() | 判斷文件或目錄是否存在 |
| os.path.isabs() | 如果path是絕對路徑,返回True |
| os.path.realpath(path) | 返回path的真實路徑 |
| os.path.relpath(path[,start]) | 從start開始計算相對路徑 |
| os.path.normcase(path) | 轉換path的大小寫和斜杠 |
| os.path.isdir() | 判斷name是不是一個目錄,name不是目錄就返回false |
| os.path.isfile() | 判斷name是不是一個文件,不存在返回false |
| os.path.islink() | 判斷文件是否連接文件,返回boolean |
| os.path.ismount() | 指定路徑是否存在且為一個掛載點,返回boolean |
| os.path.samefile() | 是否相同路徑的文件,返回boolean |
| os.path.getatime() | 返回最近訪問時間浮點型 |
| os.path.getmtime() | 返回上一次修改時間浮點型 |
| os.path.getctime() | 返回文件創(chuàng)建時間浮點型 |
| os.path.getsize() | 返回文件大小字節(jié)單位 |
| os.path.commonprefix(list) | 返回list(多個路徑)中,所有path共有的最長的路徑 |
| os.path.lexists# | 路徑存在則返回True,路徑損壞也返回True |
| os.path.expanduser(path) | 把path中包含的"~"和"~user"轉換成用戶目錄 |
| os.path.expandvars(path) | 根據(jù)環(huán)境變量的值替換path中包含的”$name”和”${name}” |
| os.path.sameopenfile(fp1,fp2) | 判斷fp1和fp2是否指向同一文件 |
| os.path.samestat(stat1,stat2) | 判斷stattuplestat1和stat2是否指向同一個文件 |
| os.path.splitdrive(path) | 一般用在windows下,返回驅動器名和路徑組成的元組 |
| os.path.walk(path,visit,arg) | 遍歷path,給每個path執(zhí)行一個函數(shù)詳細見手冊 |
| os.path.supports_unicode_filenames() | 設置是否支持unicode路徑名 |
12.5? stat模塊
stat模塊可以獲取文件的屬性方面的詳細信息。
代碼示例:
?
import stat import datetime fileStats = os.stat("D:\\tmp\\xiaodao\\FolderOperate_bak.py") print("文件大小為:"+(fileStats[stat.ST_SIZE]).__str__()+'個字節(jié)') print('最后的修改時間:' +datetime.datetime.fromtimestamp(fileStats[stat.ST_MTIME]).__str__())執(zhí)行結果:
文件大小為:102個字節(jié)
最后的修改時間:2017-03-16 10:42:34
常見方法列表:
| 方法 | 功能描述 |
| fileStats = os.stat(path) | 獲取到的文件屬性列表 |
| fileStats[stat.ST_MODE] | 獲取文件的模式 |
| fileStats[stat.ST_SIZE] | 文件大小 |
| fileStats[stat.ST_MTIME] | 文件最后修改時間 |
| fileStats[stat.ST_ATIME] | 文件最后訪問時間 |
| fileStats[stat.ST_CTIME] | 文件創(chuàng)建時間 |
| stat.S_ISDIR(fileStats[stat.ST_MODE | 是否目錄 |
| stat.S_ISREG(fileStats[stat.ST_MODE]) | 是否一般文件 |
| stat.S_ISLNK(fileStats[stat.ST_MODE]) | 是否連接文件 |
| stat.S_ISSOCK(fileStats[stat.ST_MODE]) | 是否COCK文件 |
| stat.S_ISFIFO(fileStats[stat.ST_MODE]) | 是否命名管道 |
| stat.S_ISBLK(fileStats[stat.ST_MODE]) | 是否塊設備 |
| stat.S_ISCHR(fileStats[stat.ST_MODE]) | 是否字符設置 |
12.6? datetime模塊
datetime模塊存放了常用的時間、日期處理。通過引用該模塊我們很方便的進行時間與字符串的轉換,時間和日期的轉換,時間元組與時間的轉換,時間的屬性提取等方面的操作。
代碼示例:
from datetime import datetime, date, time d = date(2017, 3, 22) print("輸出個YYYY-MM-DD格式的時間字符串:"+d.isoformat()) print("星期"+(d.weekday()+1).__str__()) print(d.isocalendar()) print(datetime.strptime('2014-03-16 12:21:21',"%Y-%m-%d%H:%M:%S")) print(datetime.now().timetuple())輸出結果:
輸出個YYYY-MM-DD格式的時間字符串:2017-03-22
星期3
(2017, 12, 3)
2014-03-1612:21:21
time.struct_time(tm_year=2017,tm_mon=3, tm_mday=22, tm_hour=16, tm_min=10, tm_sec=51, tm_wday=2, tm_yday=81,tm_isdst=-1)
常用方法列表:
| 方法 | 功能描述 |
| datetime.date.today() | 本地日期對象,(用str函數(shù)可得到它的字面表示(2014-03-24))? |
| datetime.date.isoformat(obj) | 當前[年-月-日]字符串表示(2014-03-24)? |
| datetime.date.fromtimestamp() | 返回一個日期對象,參數(shù)是時間戳,返回 [年-月-日]? |
| datetime.date.weekday(obj) | 返回一個日期對象的星期數(shù),周一是0? |
| datetime.date.isoweekday(obj) | 返回一個日期對象的星期數(shù),周一是1? |
| datetime.date.isocalendar(obj) | 把日期對象返回一個帶有年月日的元組 |
| datetime.date.fromtimestamp(timestamp[,tz]) | 按時間戳返回一個date對象,可指定時區(qū) |
| datetime.datetime.today() | 返回一個包含本地時間(含微秒數(shù))的datetime對象 2014-03-24 23:31:50.419000? |
| datetime.datetime.now([tz]) | 返回指定時區(qū)的datetime對象 2014-03-24 23:31:50.419000? |
| datetime.datetime.utcnow() | 返回一個零時區(qū)的datetime對象? |
| datetime.datetime.fromtimestamp(timestamp[,tz]) | 按時間戳返回一個datetime對象,可指定時區(qū) |
| datetime.utcfromtimestamp(timestamp) | 按時間戳返回一個UTC-datetime對象? |
| datetime.datetime.strptime('2017-03-22 12:21:21',"%Y-%m-%d %H:%M:%S") | 將字符串轉為datetime對象? |
| datetime.datetime.strftime(datetime.datetime.now(), '%Y%m%d %H%M%S') | 將datetime對象轉換為str表示形式? |
| datetime.date.today().timetuple() | 轉換為時間戳datetime元組對象,可用于轉換時間戳? |
| datetime.datetime.now().timetuple()? |
12.7? string模塊
String模塊是對字符串的一些常用處理,包括字符串的大小寫、字符串拼接、字符串查找、字符串替換等等。
代碼示例:
mystr='xiao dao bian cheng' print(mystr.rpartition(' ')) str = "this is \nstring example....\nwow!!!" print (mystr.splitlines())執(zhí)行結果:
('xiao dao bian', ' ', 'cheng')
['xiao dao bian cheng']
常用方法列表見下,示例程序可參見字符串處理章節(jié)9.5里的示例。
| 方法 | 功能描述 |
| str.capitalize() | 把字符串的第一個字符大寫 |
| str.center(width) | 返回一個原字符串居中,并使用空格填充到width長度的新字符串 |
| str.ljust(width) | 返回一個原字符串左對齊,用空格填充到指定長度的新字符串 |
| str.rjust(width) | 返回一個原字符串右對齊,用空格填充到指定長度的新字符串 |
| str.zfill(width) | 返回字符串右對齊,前面用0填充到指定長度的新字符串 |
| str.count(str,[beg,len]) | 返回子字符串在原字符串出現(xiàn)次數(shù),beg,len是范圍 |
| str.decode(encodeing[,replace]) | 解碼string,出錯引發(fā)ValueError異常 |
| str.encode(encodeing[,replace]) | 解碼string |
| str.endswith(substr[,beg,end]) | 字符串是否以substr結束,beg,end是范圍 |
| str.startswith(substr[,beg,end]) | 字符串是否以substr開頭,beg,end是范圍 |
| str.expandtabs(tabsize=8) | 把字符串的tab轉為空格,默認為8個 |
| str.find(str,[stat,end]) | 查找子字符串在字符串第一次出現(xiàn)的位置,否則返回-1 |
| str.index(str,[beg,end]) | 查找子字符串在指定字符中的位置,不存在報異常 |
| str.isalnum() | 檢查字符串是否以字母和數(shù)字組成,是返回true否則False |
| str.isalpha() | 檢查字符串是否以純字母組成,是返回true,否則false |
| str.isdecimal() | 檢查字符串是否以純十進制數(shù)字組成,返回布爾值 |
| str.isdigit() | 檢查字符串是否以純數(shù)字組成,返回布爾值 |
| str.islower() | 檢查字符串是否全是小寫,返回布爾值 |
| str.isupper() | 檢查字符串是否全是大寫,返回布爾值 |
| str.isnumeric() | 檢查字符串是否只包含數(shù)字字符,返回布爾值 |
| str.isspace() | 如果str中只包含空格,則返回true,否則FALSE |
| str.title() | 返回標題化的字符串(所有單詞首字母大寫,其余小寫) |
| str.istitle() | 如果字符串是標題化的(參見title() |
| str.join(seq) | 以str作為連接符,將一個序列中的元素連接成字符串 |
| str.split(str='',num) | 以str作為分隔符,將一個字符串分隔成一個序列,num是被分隔的字符串 |
| str.splitlines(num) | 以行分隔,返回各行內容作為元素的列表 |
| str.lower() | 將大寫轉為小寫 |
| str.upper() | 轉換字符串的小寫為大寫 |
| str.swapcase() | 翻換字符串的大小寫 |
| str.lstrip() | 去掉字符左邊的空格和回車換行符 |
| str.rstrip() | 去掉字符右邊的空格和回車換行符 |
| str.strip() | 去掉字符兩邊的空格和回車換行符 |
| str.partition(substr) | 從substr出現(xiàn)的第一個位置起,將str分割成一個3元組。 |
| str.replace(str1,str2,num) | 查找str1替換成str2,num是替換次數(shù) |
| str.rfind(str[,beg,end]) | 從右邊開始查詢子字符串 |
| str.rindex(str,[beg,end]) | 從右邊開始查找子字符串位置 |
| str.rpartition(str) | 類似partition函數(shù),不過從右邊開始查找 |
| str.translate(str,del='') | 按str給出的表轉換string的字符,del是要過慮的字符 |
12.8??總結
通過本章的學習,我們熟悉了python里常用模塊的使用,這是為我們編寫高質量的代碼奠定了良好的基礎。接下來我們來聊聊編程風格方面的事情。
總結
以上是生活随笔為你收集整理的Python基础概念_11_标准库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 江西银行是国企还是私企
- 下一篇: websocket python爬虫_p