Python之模塊二
10》常用模塊:
1>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‘):刪除單級目錄,若目錄不為空則刪除;
os.listdir(‘dirname‘):列出指定目錄下的所有文件和子目錄;
os.remove:刪除一個文件;
os.rename("oldname","newname"):重命名文件/目錄;
os.stat(‘path/filename‘):獲取文件/目錄信息;
os.sep:輸出操作系統特定的路徑分隔符,win下為"\\",Linux下為“/”;
os.linesep:輸出當前平臺使用的行終止符,win下為“\t\n”,Linux下為"\n";
os.pathsep:輸出用於分割文件路徑的字符串;
os.name:輸出字符串指示當前使用平臺,win->‘nt‘;Linux->‘posix‘;
os.system("bash command"):運行shell命令,直接顯示;
os.popen("bash command").read():將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最後的文件名
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所指向的文件或目錄的最後修改日期;
2>sys模塊:
sys.argv:命令行參數list,第一個元素是程序本身;
sys.exit(n):退出程序,正常退出時exit(0);
sys.version:獲取python解釋程序的版本信息;
sys.maxint:最大的int值;
sys.path:返回模塊的搜索路徑;
sys.platform:返回操作平臺的名稱;
sys.stdout.write(‘please:‘):用作進度條使用;
val = sys.stdin.readline()[:-1]
3>shutil模塊:高級的文件,文件夾,壓縮包處理模塊;
*****shutil對壓縮包的處理是調用ZipFile和TarFile兩個模塊來進行的;
shutil.copy.fileobj(fsrc,fdst[,length]):將文件內容拷貝到另一個文件中,可以是部分內容;
shutil.copyfile(src,dst):拷貝文件;
shutil.copymode(src,dst):僅拷貝權限;內容,組,用戶均不變;
shutil.copystat(src,dst):拷貝狀態的信息,包括mode bits,atime,mtime,flags;
shutil.copy(src,dst):拷貝文件和權限;
shutil.copy2(src,dst):拷貝文件和狀態信息;
shutil.ignore_patterns(*patterns):
shutil.copytree(src,dst,symlinks=False,ignore=None):遞歸第去拷貝文件;
shutil.rmtree(path[,ignore_errors[,onerror]]):遞歸的去刪除文件;
shutil.move(src,dst):遞歸的去移動文件;
shutil.make_archive(base_name,format,....):創建壓縮包並返回文件路徑;
base_name:壓縮包的文件名,也可以是壓縮包的路徑;只是文件名時,則保存至當前目錄,否則保存在指定路徑;
format:壓縮包種類,“zip”,"tar","bztar","gztar";
4>shelve模塊:是一個簡單的k,v將內存數據通過文件持久化的模塊,可以持久化任何pickle可支持的python
數據格式;
持久化:
讀取:
5>xml處理模塊:
xml是實現不同語言或程序之間進行數據交換的協議,跟json差不多,但json使用起來更簡單,不過,在json還沒誕生的時候,大家只能用xml, 至今很多傳統公司如金融行業的很多系統的接口還主要是xml;xml是通過<>節點來區別數據結構的;
xml文檔內容:
xml節點遍歷:
xml節點修改:
xml節點刪除:
6>configparser(3中名稱)模塊:----》ConfigParser(2中名稱)
定義:用於生成和修改常見配置文檔;
寫入配置文件:
讀取配置文件:
刪除配置文件中某些內容:
增加配置文件內容:
改寫配置文件內容:
刪除配置文件中某個元素下的內容:
7>hashlib模塊:用於加密相關的操作,3裏代替了md5模塊和sha模塊,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法;輸入 的內容一樣,加密之後的結果也一樣;加密之後無法反解;
md5加密示例:
sha512加密示例:
關於加密,python還有一個hmac模塊,它內部對我們創建key和內容再進行處理然後再加密;
8>subprocess模塊:和操作系統進行交互,執行命令和執行腳本時所用,取代了os.system;3中是subprocess.run(),2中是subprocess.call();
不帶參數執行命令:
帶參數執行命令:
獲取執行命令的真正結果:
檢查執行狀態返回碼,如果正確則返回0,如果錯誤則拋異常:
終端輸入的命令可分為兩種:
輸入即可得到輸出:如:ifconfig
輸入進行某環境,依賴再輸入,如:python
需要交互的命令示例:(在父進程中再創建一個子進程)
9>logging模塊:
很多程序都有記錄日誌的需求,並且日誌中包含的信息既有正常的程序訪問日誌,還可能有錯誤,警告等信息輸出,python的logging模塊提供了標 準的日誌接口,我們可以通過它存儲各種格式的日誌,logging的日誌可以分debug(),info(),warning(),error() and critical()5個級別;
打印日誌信息:
將日誌寫入文件:(設定級別之後只會存儲此級別及以上級別)
給日誌加上時間:
將日誌同時打印在屏幕和日誌文件裏:
Python之模塊二