標籤:handle dha nes ssi 互動 port deb size replace
OS模組功能:提供對作業系統的介面
* os.getcwd() 擷取當前工作目錄,即當前python指令碼工作的目錄路徑
os.chdir("dirname") 改變當前指令碼工作目錄;相當於shell下cd
os.curdir 返回目前的目錄: (‘.‘)
os.pardir 擷取目前的目錄的父目錄字元串名:(‘..‘)
os.makedirs(‘dirname1/dirname2‘) 可產生多層遞迴目錄
os.removedirs(‘dirname1‘) 若目錄為空白,則刪除,並遞迴到上一級目錄,如若也為空白,則刪除,依此類推
os.mkdir(‘dirname‘) 產生單級目錄;相當於shell中mkdir dirname
os.rmdir(‘dirname‘) 刪除單級空目錄,若目錄不為空白則無法刪除,報錯;相當於shell中rmdir dirname
os.listdir(‘dirname‘) 列出指定目錄下的所有檔案和子目錄,包括隱藏檔案,並以列表方式列印
os.remove() 刪除一個檔案
os.rename("oldname","newname") 重新命名檔案/目錄
os.stat(‘path/filename‘) 擷取檔案/目錄資訊
os.sep 輸出作業系統特定的路徑分隔字元,win下為"\",Linux下為"/"
os.linesep 輸出當前平台使用的行終止符,win下為"\r\n",Linux下為"\n"
os.pathsep 輸出用於分割檔案路徑的字串
os.name 輸出字串指示當前使用平台。win->‘nt‘; Linux->‘posix‘
os.system("bash command") 運行shell命令,直接顯示
os.environ 擷取系統內容變數
* os.path.abspath(path) 返回path正常化的絕對路徑
os.path.split(path) 將path分割成目錄和檔案名稱二元組返回
* os.path.dirname(path) 返回path的目錄。其實就是os.path.split(path)的第一個元素
os.path.basename(path) 返回path最後的檔案名稱。如何path以/或\結尾,那麼就會返回空值。即os.path.split(path)的第二個元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是絕對路徑,返回True
os.path.isfile(path) 如果path是一個存在的檔案,返回True。否則返回False
os.path.isdir(path) 如果path是一個存在的目錄,則返回True。否則返回False
* os.path.join(path1[, path2[, ...]]) 將多個路徑組合後返回,第一個絕對路徑之前的參數將被忽略
os.path.getatime(path) 返回path所指向的檔案或者目錄的最後存取時間
os.path.getmtime(path) 返回path所指向的檔案或者目錄的最後修改時間
Sys模組:與Python解譯器進行互動
sys.argv 命令列參數List,第一個元素是程式本身路徑
sys.exit(n) 退出程式,正常退出時exit(0)
sys.version 擷取Python解釋程式的版本資訊
sys.maxint 最大的Int值
sys.path 返回模組的搜尋路徑,初始化時使用PYTHONPATH環境變數的值
sys.platform 返回作業系統平台名稱
sys.stdout.write(‘please:‘)
val = sys.stdin.readline()[:-1]
1 import os2 import sys3 4 base_dir = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))5 print(base_dir)6 sys.path.append(base_dir)
hashlib模組:加密(MD5,SHA,SSL)
轉自:https://www.cnblogs.com/yuanchenqi/articles/5732581.html
logging模組
預設的記錄層級設定為WARNING(記錄層級等級CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET),
預設的日誌格式為記錄層級:Logger名稱:使用者輸出訊息。
可見在logging.basicConfig()函數中可通過具體參數來更改logging模組預設行為,可用參數有
filename:用指定的檔案名稱建立FiledHandler(後邊會具體講解handler的概念),這樣日誌會被儲存在指定的檔案中。
filemode:檔案開啟檔案,在指定了filename時使用這個參數,預設值為“a”還可指定為“w”。
format:指定handler使用的日誌顯示格式。
datefmt:指定日期時間格式。
level:設定rootlogger(後邊會講解具體概念)的記錄層級
stream:用指定的stream建立StreamHandler。可以指定輸出到sys.stderr,sys.stdout或者檔案(f=open(‘test.log‘,‘w‘)),預設為sys.stderr。若同時列出了filename和stream兩個參數,則stream參數會被忽略。
format參數中可能用到的格式化串:
%(name)s Logger的名字
%(levelno)s 數字形式的記錄層級
%(levelname)s 文本形式的記錄層級
%(pathname)s 調用日誌輸出函數的模組的完整路徑名,可能沒有
%(filename)s 調用日誌輸出函數的模組的檔案名稱
%(module)s 調用日誌輸出函數的模組名
%(funcName)s 調用日誌輸出函數的函數名
%(lineno)d 調用日誌輸出函數的語句所在的程式碼
%(created)f 目前時間,用UNIX標準的表示時間的浮 點數表示
%(relativeCreated)d 輸出日誌資訊時的,自Logger建立以 來的毫秒數
%(asctime)s 字串形式的目前時間。預設格式是 “2003-07-08 16:49:45,896”。逗號後面的是毫秒
%(thread)d 線程ID。可能沒有
%(threadName)s 線程名。可能沒有
%(process)d 進程ID。可能沒有
%(message)s使用者輸出的訊息
ConfigParser模組:用於產生和修改常見的配置文檔,Python3中模組名改為configparser
1 #用於產生和修改常見的配置文檔 2 import configparser 3 4 config = configparser.ConfigParser() 5 6 ‘‘‘ 7 #寫入的第一種方法 8 config["DEFAULT"] = {‘ServerAliveInterval‘: ‘45‘, 9 ‘Compression‘: ‘yes‘,10 ‘CompressionLevel‘: ‘9‘}11 12 config[‘bitbucket.org‘] = {‘User‘:‘hg‘}13 14 #第二種方法15 config[‘topsecret.server.com‘] = {}16 topsecret = config[‘topsecret.server.com‘]17 topsecret[‘Host Port‘] = ‘50022‘ # mutates the parser18 topsecret[‘ForwardX11‘] = ‘no‘ # same here19 20 #第三種方法21 config[‘DEFAULT‘][‘ForwardX11‘] = ‘yes‘22 23 #寫入24 with open(‘example.ini‘, ‘w‘) as configfile:25 config.write(configfile)26 ‘‘‘27 28 #讀取內容29 config.read(‘example.ini‘)30 # print(config.sections())31 # print(config.defaults())32 #33 # print(config[‘DEFAULT‘][‘ForwardX11‘])34 35 # for key in config:36 # print(key)37 38 # for key in config[‘bitbucket.org‘]:39 # print(key)40 41 42 #刪除43 config.remove_section(‘topsecret.server.com‘)44 45 # #有沒有這個字串46 # c = config.has_section(‘topsecret.server.com‘)47 # print(c)48 #49 # #修改50 # config.set(‘bitbucket.org‘,‘user‘,‘alex‘)51 #52 #53 # #刪除54 # config.remove_option(‘bitbucket.org‘,‘user‘)55 56 config.write(open(‘c‘,‘w‘))
Re模組:
Regex:匹配字串
字串提供的方法是完全符合,因此用到Regex
通過re模組實現
字元匹配(一般字元,元字元)
元字元: ^ . $ * + ? {} [] |或 () \
.萬用字元,只能代指任意一個字元,除了分行符號\n
^只在開始匹配
$只在結束匹配
* 重複匹配[0,+]
+ 重複匹配[1,+]
? 匹配[0,1]
{} 匹配任意個數,裡面可以加範圍
[] 字元集:或的關係 還可以取消元字元的特殊功能(\ ^ -)例外
^放在[]裡面,取反
\ 1>反斜線後邊跟元字元去除特殊功能,比如\.
2>反斜線後邊跟一般字元實現特殊功能,比如\d
() 分組
反斜線後邊跟元字元去除特殊功能,比如\.
反斜線後邊跟一般字元實現特殊功能,比如\d
\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_]
\b 匹配一個特殊字元邊界,比如空格 ,&,#等
Regex的方法:
findall() 所有的結果都返回到一個列表裡
search() 返回匹配到的第一個對象(object),對象可以釣魚group()方法來拿取返回結果
match() 只在字串開始匹配,也只返回一個對象。對象調用group方法來拿結果
* split() 分割,多次分割,先以第一個進行分割,再在一次分割的基礎上以第二個元素進行分割
sub() 替換,與replace類似
subn() 與sub一樣,只不過會返回一個替換了幾次
compile() 定義一個規則以便以後調用
finditer() 封裝成一個迭代器
<注意點>:
在建立檔案的時候出現了一個錯誤,不小心把檔案的名字命名為了模組的名字,導致錯誤希望大家注意!
Python-OS模組