1. 程式人生 > >python常用函式總結

python常用函式總結

1.常用內建函式:(不用import就可以直接使用)  

   help(obj) 線上幫助, obj可是任何型別

   callable(obj) 檢視一個obj是不是可以像函式一樣呼叫

   repr(obj) 得到obj的表示字串,可以利用這個字串eval重建該物件的一個拷貝

   eval_r(str) 表示合法的python表示式,返回這個表示式

   dir(obj) 檢視obj的name space中可見的name

   hasattr(obj,name) 檢視一個obj的name space中是否有name

   getattr(obj,name) 得到一個obj的name space中的一個name

   setattr(obj,name,value) 為一個obj的name space中的一個name指向vale這個object

   delattr(obj,name) 從obj的name space中刪除一個name

   vars(obj) 返回一個object的name space。用dictionary表示

   locals() 返回一個區域性name space,用dictionary表示

   globals() 返回一個全域性name space,用dictionary表示

   type(obj) 檢視一個obj的型別

   isinstance(obj,cls) 檢視obj是不是cls的instance

   issubclass(subcls,supcls) 檢視subcls是不是supcls的子類

 型別轉換函式

   chr(i) 把一個ASCII數值,變成字元

   ord(i) 把一個字元或者unicode字元,變成ASCII數值

   oct(x) 把整數x變成八進位制表示的字串

   hex(x) 把整數x變成十六進位制表示的字串

   str(obj) 得到obj的字串描述

   list(seq) 把一個sequence轉換成一個list

   tuple(seq) 把一個sequence轉換成一個tuple

   dict(),dict(list) 轉換成一個dictionary

   int(x) 轉換成一個integer

   long(x) 轉換成一個long interger

   float(x) 轉換成一個浮點數

   complex(x) 轉換成複數

   max(...) 求最大值

   min(...) 求最小值

 用於執行程式的內建函式

   complie 如果一段程式碼經常要使用,那麼先編譯,再執行會更快。

2.和作業系統相關的呼叫

 系統相關的資訊模組 import sys

   sys.argv是一個list,包含所有的命令列引數.

   sys.stdout sys.stdin sys.stderr 分別表示標準輸入輸出,錯誤輸出的檔案物件.

   sys.stdin.readline() 從標準輸入讀一行 sys.stdout.write("a") 螢幕輸出a

   sys.exit(exit_code) 退出程式

   sys.modules 是一個dictionary,表示系統中所有可用的module

   sys.platform 得到執行的作業系統環境

   sys.path 是一個list,指明所有查詢module,package的路徑.

 作業系統相關的呼叫和操作 import os

   os.environ 一個dictionary 包含環境變數的對映關係 os.environ["HOME"] 可以得到環境變數HOME的值

   os.chdir(dir) 改變當前目錄 os.chdir('d:\\outlook') 注意windows下用到轉義

   os.getcwd() 得到當前目錄

   os.getegid() 得到有效組id  os.getgid() 得到組id

   os.getuid() 得到使用者id  os.geteuid() 得到有效使用者id

   os.setegid os.setegid() os.seteuid() os.setuid()

   os.getgruops() 得到使用者組名稱列表

   os.getlogin() 得到使用者登入名稱

   os.getenv 得到環境變數

   os.putenv 設定環境變數

   os.umask 設定umask

   os.system(cmd) 利用系統呼叫,執行cmd命令

   操作舉例:

     os.mkdir('/tmp/xx') os.system("echo 'hello' > /tmp/xx/a.txt") os.listdir('/tmp/xx')

     os.rename('/tmp/xx/a.txt','/tmp/xx/b.txt') os.remove('/tmp/xx/b.txt') os.rmdir('/tmp/xx')

     用python編寫一個簡單的shell

       #!/usr/bin/python

       import os, sys

       cmd = sys.stdin.readline()

       while cmd:

           os.system(cmd)

           cmd = sys.stdin.readline()

 用os.path編寫平臺無關的程式

   os.path.abspath("1.txt") == os.path.join(os.getcwd(), "1.txt")

   os.path.split(os.getcwd()) 用於分開一個目錄名稱中的目錄部分和檔名稱部分。

   os.path.join(os.getcwd(), os.pardir, 'a', 'a.doc') 全成路徑名稱.

     os.pardir 表示當前平臺下上一級目錄的字元 ..

   os.path.getctime("/root/1.txt")  返回1.txt的ctime(建立時間)時間戳

   os.path.exists(os.getcwd()) 判斷檔案是否存在

   os.path.expanduser('~/dir') 把~擴充套件成使用者根目錄

   os.path.expandvars('$PATH') 擴充套件環境變數PATH

   os.path.isfile(os.getcwd()) 判斷是否是檔名,1是0否

   os.path.isdir('c:\Python26\temp') 判斷是否是目錄,1是0否

   os.path.islink('/home/huaying/111.sql') 是否是符號連線 windows下不可用

   os.path.ismout(os.getcwd()) 是否是檔案系統安裝點 windows下不可用

   os.path.samefile(os.getcwd(), '/home/huaying') 看看兩個檔名是不是指的是同一個檔案

   os.path.walk('/home/huaying', test_fun, "a.c")  

     遍歷/home/huaying下所有子目錄包括本目錄,對於每個目錄都會呼叫函式test_fun.

     例:在某個目錄中,和他所有的子目錄中查詢名稱是a.c的檔案或目錄。

       def test_fun(filename, dirname, names): //filename即是walk中的a.c dirname是訪問的目錄名稱

           if filename in names: //names是一個list,包含dirname目錄下的所有內容

               print os.path.join(dirname, filename)

       os.path.walk('/home/huaying', test_fun, "a.c")

 檔案操作

   開啟檔案

     f = open("filename", "r") r只讀 w寫 rw讀寫 rb讀二進位制 wb寫二進位制 w+寫追加

   讀寫檔案

     f.write("a") f.write(str) 寫一字串 f.writeline() f.readlines() 與下read類同

     f.read() 全讀出來 f.read(size) 表示從檔案中讀取size個字元

     f.readline() 讀一行,到檔案結尾,返回空串. f.readlines() 讀取全部,返回一個list. list每個元素表示一行,包含"\n"\

     f.tell() 返回當前檔案讀取位置

     f.seek(off, where) 定位檔案讀寫位置. off表示偏移量,正數向檔案尾移動,負數表示向開頭移動。

       where為0表示從開始算起,1表示從當前位置算,2表示從結尾算.

     f.flush() 重新整理快取

   關閉檔案

     f.close()

 regular expression 正則表示式 import re

   簡單的regexp

     p = re.compile("abc") if p.match("abc") : print "match"

     上例中首先生成一個pattern(模式),如果和某個字串匹配,就返回一個match object

     除某些特殊字元metacharacter元字元,大多數字符都和自身匹配。

     這些特殊字元是 。^ $ * + ? { [ ] \ | ( )

   字元集合(用[]表示)

     列出字元,如[abc]表示匹配a或b或c,大多數metacharacter在[]中只表示和本身匹配。例:

       a = ".^$*+?{\\|()"  大多數metachar在[]中都和本身匹配,但"^[]\"不同

       p = re.compile("["+a+"]")

       for i in a:

           if p.match(i):

               print "[%s] is match" %i

           else:

               print "[%s] is not match" %i

       在[]中包含[]本身,表示"["或者"]"匹配.用\[和\]表示.

       ^出現在[]的開頭,表示取反.[^abc]表示除了a,b,c之外的所有字元。^沒有出現在開頭,即於身身匹配。

       -可表示範圍.[a-zA-Z]匹配任何一個英文字母。[0-9]匹配任何數字。

       \在[]中的妙用。

         \d [0-9]

         \D [^0-9]

         \s [ \t\n\r\f\v]

         \S [^ \t\n\r\f\v]

         \w [a-zA-Z0-9_]

         \W [^a-zA-Z0-9_]

         \t 表示和tab匹配, 其他的都和字串的表示法一致

         \x20 表示和十六進位制ascii 0x20匹配

         有了\,可以在[]中表示任何字元。注:單獨的一個"."如果沒有出現[]中,表示出了換行\n以外的匹配任何字元,類似[^\n].

     regexp的重複          

       {m,n}表示出現m個以上(含m個),n個以下(含n個).  如ab{1,3}c和abc,abbc,abbbc匹配,不會與ac,abbbc匹配。

       m是下界,n是上界。m省略表下界是0,n省略,表上界無限大。

       *表示{,} +表示{1,} ?表示{0,1}

       最大匹配和最小匹配 python都是最大匹配,如果要最小匹配,在*,+,?,{m,n}後面加一個?.

       match object的end可以得到匹配的最後一個字元的位置。

         re.compile("a*").match('aaaa').end()     4  最大匹配

         re.compile("a*?").match('aaaa').end()    0  最小匹配

     使用原始字串

       字串表示方法中用\\表示字元\.大量使用影響可讀性。

       解決方法:在字串前面加一個r表示raw格式。

       a = r"\a" print a 結果是\a

       a = r"\"a" print a 結果是\"a

     使用re模組

       先用re.compile得到一個RegexObject 表示一個regexp

       後用pattern的match,search的方法,得到MatchObject

       再用match object得到匹配的位置,匹配的字串等資訊

       RegxObject常用函式:

         >>> re.compile("a").match("abab") 如果abab的開頭和re.compile("a")匹配,得到MatchObject

         <_sre.SRE_Match object at 0x81d43c8>

         >>> print re.compile("a").match("bbab")

         None 注:從str的開頭開始匹配          

         >>> re.compile("a").search("abab") 在abab中搜索第一個和re_obj匹配的部分

         <_sre.SRE_Match object at 0x81d43c8>

         >>> print re.compile("a").search("bbab")

         <_sre.SRE_Match object at 0x8184e18> 和match()不同,不必從開頭匹配          

         re_obj.findall(str) 返回str中搜索所有和re_obj匹配的部分.

           返回一個tuple,其中元素是匹配的字串.

       MatchObject的常用函式

         m.start() 返回起始位置,m.end()返回結束位置(不包含該位置的字元).

         m.span() 返回一個tuple表示(m.start(), m.end())

         m.pos(), m.endpos(), m.re(), m.string()

           m.re().search(m.string(), m.pos(), m.endpos()) 會得到m本身

         m.finditer()可以返回一個iterator,用來遍歷所有找到的MatchObject.

           for m in re.compile("[ab]").finditer("tatbxaxb"):

           print m.span()

     高階regexp

       | 表示聯合多個regexp. A B兩個regexp,A|B表示和A匹配或者跟B匹配.

       ^ 表示只匹配一行的開始行首,^只有在開頭才有此特殊意義。

       $ 表示只匹配一行的結尾

       \A 表示只匹配第一行字串的開頭 ^匹配每一行的行首

       \Z 表示只匹配行一行字串的結尾 $匹配第一行的行尾

       \b 只匹配詞的邊界 例:\binfo\b 只會匹配"info" 不會匹配information

       \B 表示匹配非單詞邊界

       示例如下:

         >>> print re.compile(r"\binfo\b").match("info ") #使用raw格式 \b表示單詞邊界

         <_sre.SRE_Match object at 0x817aa98>

         >>> print re.compile("\binfo\b").match("info ") #沒有使用raw \b表示退格符號

         None

         >>> print re.compile("\binfo\b").match("\binfo\b ")

         <_sre.SRE_Match object at 0x8174948>

     分組(Group) 示例:re.compile("(a(b)c)d").match("abcd").groups()   ('abc', 'b')        

       #!/usr/local/bin/python        

       import re        

       x = """

       name: Charles

       Address: BUPT

       name: Ann

       Address: BUPT

       """        

       #p = re.compile(r"^name:(.*)\n^Address:(.*)\n", re.M)

       p = re.compile(r"^name:(?P<name>.*)\n^Address:(?P<address>.*)\n", re.M)

       for m in p.finditer(x):

               print m.span()

               print "here is your friends list"

               print "%s, %s"%m.groups()

     Compile Flag

       用re.compile得到RegxObject時,可以有一些flag用來調整RegxObject的詳細特徵.

         DOTALL, S 讓.匹配任意字元,包括換行符\n

         IGNORECASE, I 忽略大小寫

         LOCALES, L 讓\w \W \b \B和當前的locale一致

         MULTILINE, M 多行模式,隻影響^和$(參見上例)

         VERBOSE, X verbose模式

新增幾個tips:

python執行linux命令有兩種方法:

1.使用os模組

>> import os
>> os.system('ls -l')
2.使用subprocess模組
>> import subprocess
  
>> subprocess.call('ls -l'.split())


相關推薦

python常用函式總結~

python也算學了一段時間,有些函式很常用但用的時候還是會忘,現在總結記錄一下python裡面很實用的並經常用到的內建函式(不用匯入其他模組)。 help() 檢視線上幫助,可以是各種型別的資料結構或者它們的方法函式。 >>> help(li

python常用函式總結

1.常用內建函式:(不用import就可以直接使用)      help(obj) 線上幫助, obj可是任何型別    callable(obj) 檢視一個obj是不是可以像函式一樣呼叫    repr(obj) 得到obj的表示字串,可以利用這個字串eval重

python--常用函式總結

1.計算函式 abs()--取絕對值 max()--取序列最大值,包括列表、元組 min()--取序列最小值 len()--取長度 divmod(a,b)---取a//b除數整數以及餘數,成為一個元組 pow(x,y)--取x的Y次冪 pow(x,y,z)先x的Y次冪

Python那些事——超級乾貨,python常用函式總結

我們在學習python的時候,接觸最多的往往則是那些函式,對於python函式,在這裡為大家總結歸納了這些,如果有缺漏,還請及時留言指正哦! 話不多說,乾貨來襲! 1.常用內建函式:(不用import就可以直接使用) help(obj) 線上幫助, obj可是任何型別 call

Python中re(正則表示式)常用函式總結

1  re.match       #嘗試從字串的開始匹配一個模式     re.match的函式原型為:re.match(pattern, string, flags)     第一個引數是正則表示式,這裡為"(\w+)\s",如果匹配成功,則返回一個Match,否則返

Python常用關鍵字和常用函式總結(不定期更新)

1.print('')            #可以直接列印字串&列表裡的所有資料,python2.x中print “” 無需加括號 2.轉換字串:str()    #將字元轉義成字串 3.字串:     (1)string.title()    #將字串轉義成標題(單詞首字母大寫)     (2)字

自然語言處理爬過的坑:使用python遍歷所有的資料夾中的所有文字.標準庫OS的常用函式總結大全

# -*- coding: utf-8 -*- import os import codecs def search(filepath): #遍歷filepath下所有檔案,包括子目錄 files = os.listdir(filepath) for fil

Python-Numpy常用函式總結

1、np.arange(x,y,z)建立公差為z的等差一維陣列 例: b = np.arange(1,5,1) b:[1 2 3 4]2、np.meshgrid(x,y) x=np.array([1,2]),y=np.array([3]) 例: b2_1,b2_2=np.m

JavaScript常用函式總結

 最近正在學習js語法,講到函式這一塊內容,感覺有些細節還是挺有用的,所以發文總結一下。      javascript這門語言本身就是一種弱型別語言,它不和像java, c ,c#等等這些語言一樣,在宣告變數和方法的時候不需要對齊進行指定資料型別的修飾,

【六】 makefile常用函式總結

函式的呼叫語法 函式使用“$”呼叫: $(function arguments) ${function arguments}  例如: $(subst .c, .o, test1.c test2.c) 還是來看一個示例: #$(comma)值是一個逗號

opencv常用函式總結

最近做影象處理專案,總結一下常用的函式: 1,converto :函式轉為任意想要的格式,以及可以新增歸一化係數,這個係數可能要用到mat的最大值和最小值,下面這個函式可以取出最大最小值 2,cv::minMaxLoc(mat,&minim,&maxim);,取出的最大最小值

常用函式--總結

<?php /** * @param $url * @param $data * @param $header * @return mixed */ function http_curl($url,$data,$header){ //初始化curl $ch = cu

opencv3 - python 常用函式

1. 讀入影象   讀入一般都是作為程式的開始,在opencv中,有以下幾種的讀入方式 img = cv2.imread(img_path, flag) 其中是一個標記位,取值從-1到3,也有對應的巨集定義。 CV_LOAD_IMAGE_UNCHANGED – 在每個通

生產環境中Oracle常用函式總結

1>to_char,將日期轉換為字元;add_months,在第一個引數的日期上加或者減第二個引數的值 select dkzh,jkhtbh,yhkrq,dkffrq,shqs,dqyqcs,to_char(add_months(dkffrq,shqs+dqyqcs+1),'yyyymm'

DB2資料庫常用函式總結

1、VALUE函式 語法:VALUE(EXPRESSION1,EXPRESSION2) VALUE函式是用返回一個非空的值,當其第一個引數非空,直接返回該引數的值,如果第一個引數為空,則返回第一個引數的值。 eg: –表示如果T1

MySQL常用函式總結及用法

1、字串函式ascii(str)   返回字串str的第一個字元的ascii值(str是空串時返回0)  mysql> select ascii('2');    -> 50  mysql> select ascii(2);&nbs

ARM NEON常用函式總結

原文地址:https://blog.csdn.net/may0324/article/details/72847800 NEON 技術是 ARM Cortex™-A 系列處理器的 128 位 SIMD(單指令,多資料)架構擴充套件,旨在為消費性多媒體應用程式提供

PHP常用函式總結

數學函式 1.abs(): 求絕對值 $abs = abs(-4.2); //4.2 數字絕對值數字 2.ceil(): 進一法取整 echo ceil(9.999); // 10 浮點數進一取整 3.floor(): 捨去法取整     echo floor(9

mysql常用函式總結

一、數學函式 ABS(x) 返回x的絕對值 BIN(x) 返回x的二進位制(OCT返回八進位制,HEX返回十六進位制) CEILING(x) 返回大於x的最小整數值 EXP(x) 返回值e(自然對數的底)的x次方 FLOOR(x) 返

opencv python 常用函式集合

  學習Python和OpenCV, 用gAWK抽出OpenCV函式方便查詢, 從《The OpenCV Reference Manual, Release 2.4.8.0 》輸出: 章節行, 函式行 ,頁碼 C++開頭  1632行 C開頭 469 行