python 常用模組
阿新 • • 發佈:2020-08-11
os模組:
- os.remove() 刪除檔案
- os.unlink() 刪除檔案
- os.rename() 重新命名檔案
- os.listdir() 列出指定目錄下所有檔案
- os.chdir() 改變當前工作目錄
- os.getcwd() 獲取當前檔案路徑
- os.mkdir() 新建目錄
- os.rmdir() 刪除空目錄(刪除非空目錄, 使用shutil.rmtree())
- os.makedirs() 建立多級目錄
- os.removedirs() 刪除多級目錄
- os.stat(file) 獲取檔案屬性
- os.chmod(file) 修改檔案許可權
- os.utime(file) 修改檔案時間戳
- os.name(file) 獲取作業系統標識
- os.system() 執行作業系統命令
- os.execvp() 啟動一個新程序
- os.fork() 獲取父程序ID,在子程序返回中返回0
- os.execvp() 執行外部程式指令碼(Uinx)
- os.spawn() 執行外部程式指令碼(Windows)
- os.access(path, mode) 判斷檔案許可權(詳細參考cnblogs)
- os.wait() 暫時未知
- os.path模組:
- 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) 規範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() 返回檔案建立時間 浮點型
- os.path.getsize() 返回檔案大小 位元組單位
- os.path.commonprefix(list) #返回list(多個路徑)中,所有path共有的最長的路徑
- os.path.lexists #路徑存在則返回True,路徑損壞也返回True
- os.path.expanduser(path) #把path中包含的”~”和”~user”轉換成使用者目錄
- os.path.expandvars(path) #根據環境變數的值替換path中包含的”$name”和”${name}”
- os.path.sameopenfile(fp1, fp2) #判斷fp1和fp2是否指向同一檔案
- os.path.samestat(stat1, stat2) #判斷stat tuple stat1和stat2是否指向同一個檔案
- os.path.splitdrive(path) #一般用在windows下,返回驅動器名和路徑組成的元組
- os.path.walk(path, visit, arg) #遍歷path,給每個path執行一個函式詳細見手冊
- os.path.supports_unicode_filenames() 設定是否支援unicode路徑名
stat模組:
- 描述os.stat()返回的檔案屬性列表中各值的意義
- fileStats = os.stat(path) 獲取到的檔案屬性列表
- fileStats[stat.ST_MODE] 獲取檔案的模式
- fileStats[stat.ST_SIZE] 檔案大小
- fileStats[stat.ST_MTIME] 檔案最後修改時間
- fileStats[stat.ST_ATIME] 檔案最後訪問時間
- fileStats[stat.ST_CTIME] 檔案建立時間
- 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]) 是否字元設定
sys模組:
- 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.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(詳細使用參考文件)
datetime,date,time模組:
- datetime.date.today() 本地日期物件,(用str函式可得到它的字面表示(2014-03-24))
- datetime.date.isoformat(obj) 當前[年-月-日]字串表示(2014-03-24)
- datetime.date.fromtimestamp() 返回一個日期物件,引數是時間戳,返回 [年-月-日]
- datetime.date.weekday(obj) 返回一個日期物件的星期數,週一是0
- datetime.date.isoweekday(obj) 返回一個日期物件的星期數,週一是1
- datetime.date.isocalendar(obj) 把日期物件返回一個帶有年月日的元組
- datetime物件:
- datetime.datetime.today() 返回一個包含本地時間(含微秒數)的datetime物件 2014-03-24 23:31:50.419000
- datetime.datetime.now([tz]) 返回指定時區的datetime物件 2014-03-24 23:31:50.419000
- datetime.datetime.utcnow() 返回一個零時區的datetime物件
- datetime.fromtimestamp(timestamp[,tz]) 按時間戳返回一個datetime物件,可指定時區,可用於strftime轉換為日期表示
- datetime.utcfromtimestamp(timestamp) 按時間戳返回一個UTC-datetime物件
- datetime.datetime.strptime(‘2014-03-16 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()
- time.mktime(timetupleobj) 將datetime元組物件轉為時間戳
- time.time() 當前時間戳
- time.localtime
- time.gmtime
hashlib,md5模組:
- hashlib.md5(‘md5_str‘).hexdigest() 對指定字串md5加密
- md5.md5(‘md5_str‘).hexdigest() 對指定字串md5加密
random模組:
- random.random() 產生0-1的隨機浮點數
- random.uniform(a, b) 產生指定範圍內的隨機浮點數
- random.randint(a, b) 產生指定範圍內的隨機整數
- random.randrange([start], stop[, step]) 從一個指定步長的集合中產生隨機數
- random.choice(sequence) 從序列中產生一個隨機數
- random.shuffle(x[, random]) 將一個列表中的元素打亂
- random.sample(sequence, k) 從序列中隨機獲取指定長度的片斷
types模組:
- 儲存了所有資料型別名稱。
- if type(‘1111‘) == types.StringType:
- MySQLdb模組:
- MySQLdb.get_client_info() 獲取API版本
- MySQLdb.Binary(‘string‘) 轉為二進位制資料形式
- MySQLdb.escape_string(‘str‘) 針對mysql的字元轉義函式
- MySQLdb.DateFromTicks(1395842548) 把時間戳轉為datetime.date物件例項
- MySQLdb.TimestampFromTicks(1395842548) 把時間戳轉為datetime.datetime物件例項
- MySQLdb.string_literal(‘str‘) 字元轉義
- MySQLdb.cursor()遊標物件上的方法:《python核心程式設計》P624
atexit模組:
atexit.register(fun,args,args2..) 註冊函式func,在解析器退出前呼叫該函式
string模組
- str.capitalize() 把字串的第一個字元大寫
- str.center(width) 返回一個原字串居中,並使用空格填充到width長度的新字串
- str.ljust(width) 返回一個原字串左對齊,用空格填充到指定長度的新字串
- str.rjust(width) 返回一個原字串右對齊,用空格填充到指定長度的新字串
- str.zfill(width) 返回字串右對齊,前面用0填充到指定長度的新字串
- str.count(str,[beg,len]) 返回子字串在原字串出現次數,beg,len是範圍
- str.decode(encodeing[,replace]) 解碼string,出錯引發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]) 查詢子字串在字串第一次出現的位置,否則返回-1
- str.index(str,[beg,end]) 查詢子字串在指定字元中的位置,不存在報異常
- str.isalnum() 檢查字串是否以字母和數字組成,是返回true否則False
- str.isalpha() 檢查字串是否以純字母組成,是返回true,否則false
- str.isdecimal() 檢查字串是否以純十進位制數字組成,返回布林值
- str.isdigit() 檢查字串是否以純數字組成,返回布林值
- str.islower() 檢查字串是否全是小寫,返回布林值
- str.isupper() 檢查字串是否全是大寫,返回布林值
- str.isnumeric() 檢查字串是否只包含數字字元,返回布林值
- str.isspace() 如果str中只包含空格,則返回true,否則FALSE
- str.title() 返回標題化的字串(所有單詞首字母大寫,其餘小寫)
- str.istitle() 如果字串是標題化的(參見title())則返回true,否則false
- 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出現的第一個位置起,將str分割成一個3元組。
- str.replace(str1,str2,num) 查詢str1替換成str2,num是替換次數
- str.rfind(str[,beg,end]) 從右邊開始查詢子字串
- str.rindex(str,[beg,end]) 從右邊開始查詢子字串位置
- str.rpartition(str) 類似partition函式,不過從右邊開始查詢
- str.translate(str,del=‘‘) 按str給出的錶轉換string的字元,del是要過慮的字元
urllib模組:
- urllib.quote(string[,safe]) 對字串進行編碼。引數safe指定了不需要編碼的字元
- urllib.unquote(string) 對字串進行解碼
- urllib.quote_plus(string[,safe]) 與urllib.quote類似,但這個方法用‘+‘來替換‘ ‘,而quote用‘%20‘來代替‘ ‘
- urllib.unquote_plus(string ) 對字串進行解碼
- urllib.urlencode(query[,doseq]) 將dict或者包含兩個元素的元組列表轉換成url引數。
- 例如 字典{‘name‘:‘wklken‘,‘pwd‘:‘123‘}將被轉換為”name=wklken&pwd=123″
- urllib.pathname2url(path) 將本地路徑轉換成url路徑
- urllib.url2pathname(path) 將url路徑轉換成本地路徑
- urllib.urlretrieve(url[,filename[,reporthook[,data]]]) 下載遠端資料到本地
- filename:指定儲存到本地的路徑(若未指定該,urllib生成一個臨時檔案儲存資料)
- reporthook:回撥函式,當連線上伺服器、以及相應的資料塊傳輸完畢的時候會觸發該回調
- data:指post到伺服器的資料
- rulrs = urllib.urlopen(url[,data[,proxies]]) 抓取網頁資訊,[data]post資料到Url,proxies設定的代理
- urlrs.readline() 跟檔案物件使用一樣
- urlrs.readlines() 跟檔案物件使用一樣
- urlrs.fileno() 跟檔案物件使用一樣
- urlrs.close() 跟檔案物件使用一樣
- urlrs.info() 返回一個httplib.HTTPMessage物件,表示遠端伺服器返回的頭資訊
- urlrs.getcode() 獲取請求返回狀態HTTP狀態碼
- urlrs.geturl() 返回請求的URL
re模組:
- 一.常用正則表示式符號和語法:
- '.' 匹配所有字串,除\n以外
- ‘-’ 表示範圍[0-9]
- '*' 匹配前面的子表示式零次或多次。要匹配 * 字元,請使用 \*。
- '+' 匹配前面的子表示式一次或多次。要匹配 + 字元,請使用 \+
- '^' 匹配字串開頭
- ‘$’ 匹配字串結尾 re
- '\' 轉義字元, 使後一個字元改變原來的意思,如果字串中有字元*需要匹配,可以\*或者字符集[*] re.findall(r'3\*','3*ds')結['3*']
- '*' 匹配前面的字元0次或多次 re.findall("ab*","cabc3abcbbac")結果:['ab', 'ab', 'a']
- ‘?’ 匹配前一個字串0次或1次 re.findall('ab?','abcabcabcadf')結果['ab', 'ab', 'ab', 'a']
- '{m}' 匹配前一個字元m次 re.findall('cb{1}','bchbchcbfbcbb')結果['cb', 'cb']
- '{n,m}' 匹配前一個字元n到m次 re.findall('cb{2,3}','bchbchcbfbcbb')結果['cbb']
- '\d' 匹配數字,等於[0-9] re.findall('\d','電話:10086')結果['1', '0', '0', '8', '6']
- '\D' 匹配非數字,等於[^0-9] re.findall('\D','電話:10086')結果['電', '話', ':']
- '\w' 匹配字母和數字,等於[A-Za-z0-9] re.findall('\w','alex123,./;;;')結果['a', 'l', 'e', 'x', '1', '2', '3']
- '\W' 匹配非英文字母和數字,等於[^A-Za-z0-9] re.findall('\W','alex123,./;;;')結果[',', '.', '/', ';', ';', ';']
- '\s' 匹配空白字元 re.findall('\s','3*ds \t\n')結果[' ', '\t', '\n']
- '\S' 匹配非空白字元 re.findall('\s','3*ds \t\n')結果['3', '*', 'd', 's']
- '\A' 匹配字串開頭
- '\Z' 匹配字串結尾
- '\b' 匹配單詞的詞首和詞尾,單詞被定義為一個字母數字序列,因此詞尾是用空白符或非字母數字符來表示的
- '\B' 與\b相反,只在當前位置不在單詞邊界時匹配
- '(?P<name>...)' 分組,除了原有編號外在指定一個額外的別名 re.search("(?P<province>[0-9]{4})(?P<city>[0-9]{2})(?P<birthday>[0-9]{8})","371481199306143242").groupdict("city") 結果{'province': '3714', 'city': '81', 'birthday': '19930614'}
- [] 是定義匹配的字元範圍。比如 [a-zA-Z0-9] 表示相應位置的字元要匹配英文字元和數字。[\s*]表示空格或者*號。
- 二.常用的re函式:
- 方法/屬性 作用
- re.match(pattern, string, flags=0) 從字串的起始位置匹配,如果起始位置匹配不成功的話,match()就返回none
- re.search(pattern, string, flags=0) 掃描整個字串並返回第一個成功的匹配
- re.findall(pattern, string, flags=0) 找到RE匹配的所有字串,並把他們作為一個列表返回
- re.finditer(pattern, string, flags=0) 找到RE匹配的所有字串,並把他們作為一個迭代器返回
- re.sub(pattern, repl, string, count=0, flags=0) 替換匹配到的字串
math模組
- ceil:取大於等於x的最小的整數值,如果x是一個整數,則返回x
- copysign:把y的正負號加到x前面,可以使用0
- cos:求x的餘弦,x必須是弧度
- degrees:把x從弧度轉換成角度
- e:表示一個常量
- exp:返回math.e,也就是2.71828的x次方
- expm1:返回math.e的x(其值為2.71828)次方的值減1
- fabs:返回x的絕對值
- factorial:取x的階乘的值
- floor:取小於等於x的最大的整數值,如果x是一個整數,則返回自身
- fmod:得到x/y的餘數,其值是一個浮點數
- frexp:返回一個元組(m,e),其計算方式為:x分別除0.5和1,得到一個值的範圍
- fsum:對迭代器裡的每個元素進行求和操作
- gcd:返回x和y的最大公約數
- hypot:如果x是不是無窮大的數字,則返回True,否則返回False
- isfinite:如果x是正無窮大或負無窮大,則返回True,否則返回False
- isinf:如果x是正無窮大或負無窮大,則返回True,否則返回False
- isnan:如果x不是數字True,否則返回False
- ldexp:返回x*(2**i)的值
- log:返回x的自然對數,預設以e為基數,base引數給定時,將x的對數返回給定的base,計算式為:log(x)/log(base)
- log10:返回x的以10為底的對數
- log1p:返回x+1的自然對數(基數為e)的值
- log2:返回x的基2對數
- modf:返回由x的小數部分和整數部分組成的元組
- pi:數字常量,圓周率
- pow:返回x的y次方,即x**y
- radians:把角度x轉換成弧度
- sin:求x(x為弧度)的正弦值
- sqrt:求x的平方根
- tan:返回x(x為弧度)的正切值
- trunc:返回x的整數部分