1. 程式人生 > >Python之模塊二

Python之模塊二

ces 指示 包含 bits 調用 pickle tar mod 系統環境

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之模塊二