標籤:報錯 代碼 作用 重新命名 刪除 無法 load blog 分割檔案
產生器
在Python中,一邊迴圈一邊計算的機制,稱為產生器:generator。
如:
1 >>> g = (x * x for xin range(10))2 >>> g
3 <generator object <genexpr> at 0x1022ef630>
此處g就是一個產生器.
迭代器
我們已經知道,可以直接作用於for迴圈的資料類型有以下幾種:
一類是集合資料類型,如list、tuple、dict、set、str等;
一類是generator,包括產生器和帶yield的generator function。
這些可以直接作用於for迴圈的對象統稱為可迭代對象:Iterable。
可以使用isinstance()判斷一個對象是否是Iterable對象:
1 >>> from collections import Iterable 2 >>> isinstance([], Iterable) 3 True 4 >>> isinstance({}, Iterable) 5 True 6 >>> isinstance(‘abc‘, Iterable) 7 True 8 >>> isinstance((x for x in range(10)), Iterable) 9 True10 >>> isinstance(100, Iterable)11 False
*可以被next()函數調用並不斷返回下一個值的對象稱為迭代器:Iterator。
產生器都是Iterator對象,但list、dict、str雖然是Iterable,卻不是Iterator。
凡是可作用於for迴圈的對象都是Iterable類型;
凡是可作用於next()函數的對象都是Iterator類型,它們表示一個惰性計算的序列;
集合資料類型如list、dict、str等是Iterable但不是Iterator,不過可以通過iter()函數獲得一個Iterator對象。
裝飾器
裝飾器的作用完全符合開發中的開放-封閉原則.在不改變原有功能代碼,不改變原有調用方式,實現擴充新的功能.
模組匯入的兩種方法
import auth
import auth as os 取個別名為os
from auth import login
__file__ 相對路徑的檔案名稱
os.basename(os.path.abspath(__file__)) 把相對路徑轉換為絕對路徑
py2
目錄裡面沒有__init__,那就只是一個目錄.目錄是不可以被匯入的.
有__Init__.那這個目錄就變成了 "包" = package
只不過在py3裡面.目錄不用加__init__也可以被匯入
常用模組 OS模組
提供對作業系統進行調用的介面
1 os.getcwd() 擷取當前工作目錄,即當前python指令碼工作的目錄路徑 2 os.chdir("dirname") 改變當前指令碼工作目錄;相當於shell下cd 3 os.curdir 返回目前的目錄: (‘.‘) 4 os.pardir 擷取目前的目錄的父目錄字元串名:(‘..‘) 5 os.makedirs(‘dirname1/dirname2‘) 可產生多層遞迴目錄 6 os.removedirs(‘dirname1‘) 若目錄為空白,則刪除,並遞迴到上一級目錄,如若也為空白,則刪除,依此類推 7 os.mkdir(‘dirname‘) 產生單級目錄;相當於shell中mkdir dirname 8 os.rmdir(‘dirname‘) 刪除單級空目錄,若目錄不為空白則無法刪除,報錯;相當於shell中rmdir dirname 9 os.listdir(‘dirname‘) 列出指定目錄下的所有檔案和子目錄,包括隱藏檔案,並以列表方式列印10 os.remove() 刪除一個檔案11 os.rename("oldname","newname") 重新命名檔案/目錄12 os.stat(‘path/filename‘) 擷取檔案/目錄資訊13 os.sep 輸出作業系統特定的路徑分隔字元,win下為"\\",Linux下為"/"14 os.linesep 輸出當前平台使用的行終止符,win下為"\t\n",Linux下為"\n"15 os.pathsep 輸出用於分割檔案路徑的字串16 os.name 輸出字串指示當前使用平台。win->‘nt‘; Linux->‘posix‘17 os.system("bash command") 運行shell命令,直接顯示18 os.environ 擷取系統內容變數19 os.path.abspath(path) 返回path正常化的絕對路徑20 os.path.split(path) 將path分割成目錄和檔案名稱二元組返回21 os.path.dirname(path) 返回path的目錄。其實就是os.path.split(path)的第一個元素22 os.path.basename(path) 返回path最後的檔案名稱。如何path以/或\結尾,那麼就會返回空值。即os.path.split(path)的第二個元素23 os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False24 os.path.isabs(path) 如果path是絕對路徑,返回True25 os.path.isfile(path) 如果path是一個存在的檔案,返回True。否則返回False26 os.path.isdir(path) 如果path是一個存在的目錄,則返回True。否則返回False27 os.path.join(path1[, path2[, ...]]) 將多個路徑組合後返回,第一個絕對路徑之前的參數將被忽略28 os.path.getatime(path) 返回path所指向的檔案或者目錄的最後存取時間29 os.path.getmtime(path) 返回path所指向的檔案或者目錄的最後修改時間sys模組
1 sys.argv 命令列參數List,第一個元素是程式本身路徑2 sys.exit(n) 退出程式,正常退出時exit(0)3 sys.version 擷取Python解釋程式的版本資訊4 sys.maxint 最大的Int值5 sys.path 返回模組的搜尋路徑,初始化時使用PYTHONPATH環境變數的值6 sys.platform 返回作業系統平台名稱
json & pickle 模組
用於序列化的兩個模組
- json,用於字串 和 python資料類型間進行轉換
- pickle,用於python特有的類型 和 python的資料類型間進行轉換
Json模組提供了四個功能:dumps、dump、loads、load
pickle模組提供了四個功能:dumps、dump、loads、load
python學習筆記(5)--迭代器,產生器,裝飾器,常用模組,序列化