python模塊與正則表達式


一、模塊

模塊實質上就是一個python文件,它是用來組織代碼的,意思就是說把python代碼寫到里面,文件名就是模塊的名稱,test.py test就是模塊名稱。

import 模塊的實質就是把要導入模塊里面的代碼,從上到下執行一遍找模塊的順序是,先從當前目錄下找,找不到的話,再環境變量里面找。

模塊的分類:

Ø 標准庫:python內置的

Ø 開源模塊:第三方

Ø 自定義模塊:自己寫的

其中開源模塊需要安裝,安裝方式有一下兩種:

安裝方式第一種:

這是操作系統命令,不是在python命令行里面執行

pip install xxx 安裝某個模塊

pip list 查看已經安裝的模塊

pip uninstall xxx卸載模塊

pip這個模塊呢,在python3里面是python自帶的,安裝完python就能直接用,但是在python2里面是沒有這個模塊的,需要你手動安裝才能用

easy_install requests #這個也是傻瓜式的

第二種方式,手動安裝:

1、先下載安裝包,直接百度搜比如說python requests模塊

2、解壓安裝包

3、在解壓的目錄下執行 python setup.py install

OS模塊

print(os.getcwd())#取當前工作目錄

print(os.chdir(r"e:\byz_code\day2"))#更改當前目錄

print(os.mkdir("test1"))#創建文件夾

print(os.makedirs(r"test1\test2"))#遞歸創建文件夾,父目錄不存在時創建父目錄

print(os.removedirs(r"test1\test2"))#遞歸刪除空目錄

print(os.rmdir("test1"))#刪除指定的文件夾,只能刪除空文件夾

print(os.remove(r"E:\byz_code\day4\a.txt"))#刪除文件

os.rename("test","test1")#重命名

print(os.sep)#當前操作系統的路徑分隔符

print(__file__)#代表當前文件

print(os.path.abspath('bb.py'))#獲取絕對路徑

print(__file__)#代表當前文件

print(os.path.dirname)

print(os.path.dirname(os.path.dirname(__file__)))#獲取父目錄

print(os.path.exists("hhaaa"))#目錄/文件是否存在

print(os.path.isfile("bb.py"))#判斷是否是一個文件

print(os.path.isdir("/usr/local"))#是否是一個路徑

print(os.path.join("root",'hehe','haha','a.log'))

RE模塊

re.match 只有在0位置匹配成功的話才有返回,如果不是開始位置匹配成功的話,match()就返回none

re.search 匹配包含,search()會掃描整個字符串並返回第一個成功的匹配

re.findall 把所有匹配到的字符放到以列表中的元素返回

re.splitall 以匹配到的字符當做列表分隔符

re.sub 匹配字符並替換

 二、正則表達式

正則表達式

正則表達式就是用查找字符串的,它能查找規則比較復雜的字符串

數量詞
'*'     匹配*號前的字符0次或多次,只是*前面的一個字符
print(re.findall(r'a*b','ab a abbbbbb aab'))
>>> ['ab', 'ab', 'b', 'b', 'b', 'b', 'b', 'aab']
'+'     匹配前一個字符1次或多次,只是+前面的一個字符
print(re.findall(r'st+','besttest is best s'))
>>> ['stt', 'st', 'st']
'?'     匹配前一個字符1次或0次,只是?前面的一個字符
print(re.findall(r'st?','besttest is best'))
'{2}'   匹配前一個字符m次
print(re.findall(r't{2}er','besttest is best  letter letter'))
>>> ['tter','tter']
'{n,m}' 匹配前一個字符n到m次
print(re.findall(r't{1,3}','besttest is best ttttt'))
>>> ['tt', 't', 't','ttttt']

一般字符
'.'     默認匹配除\n之外的任意一個字符
print(re.findall(r'b.','besttest is good ba bf bo'))
>>> [['be', 'ba', 'bf', 'bo']
'\'   轉譯符,前面的* + ?這樣的字符都有特殊含義了,如果你想就想找它的話,那就得轉譯了
意思就是說如果你想讓特殊字符失去以前的含義,那么就得給它前面加上\
print(re.findall(r'\?','besttest is best????'))
>>> ['?', '?', '?', '?']
'|'     匹配|左或|右的字符
print(re.findall(r'best|is','besttest is best'))
>>> ['best', 'is', 'best'
'[]' 字符集合,某些字符的集合,匹配的時候是這個集合里面的任意一個就行
print(re.findall(r'be[stacj]','besttest is best bejson bed'))
>>>['bes', 'bes', 'bej']
[]里面如果用^的話代表取反,也就是不包括的這些字符串的
print(re.findall(r'be[^stac]','besttest is best bejson'))

邊界匹配

'^'     匹配以什么字符開頭,多行情況下匹配每一行的開頭
print(re.findall(r'^b','besttest is good\nbestest',re.M))   #re.M表示匹配多行
print(re.findall(r'^http://','http://www.baidu.com is good\nbestest'))
>>> ['b']
print(re.findall(r'^b','besttest is good\nbest'),re.M)#多行模式
>>> ['b','b']
'$'     匹配以什么字符結尾,多行情況下匹配每一行的結尾
print(re.findall(r'd$','besttest is good'))

 

未全整理完,后續整理


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM