<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          3 個 Python 第三方模塊的使用簡介

          共 521字,需瀏覽 2分鐘

           ·

          2020-11-17 04:13

          ??本文將會介紹3個Python第三方模塊的使用方法,它們分別是tqdm,?pyyamltraceback模塊,各自的用途描述如下:

          • tqdm: 可以顯示循環(huán)的進度條;

          • pyyaml:Python操作YAML文件的庫;

          • tracebak:詳細追蹤錯誤信息的庫。

          ??下面將會給出這3個模塊的簡單介紹和使用。

          tqdm

          ??tqdm是Python中可以顯示循環(huán)的進度條模塊,tqdm()可以直接包裹iterable的對象。如果我們需要顯示程序處理的進度條時,我們可以使用該模塊。
          ??下面將給出幾個簡單使用tqdm的例子。
          ??例子1:直接使用進度條,示例程序如下:

          #?-*-?coding:?utf-8?-*-

          import?time
          from?tqdm?import?tqdm

          for?i?in?tqdm(range(100)):
          ????time.sleep(0.01)

          輸出結果如下:

          100%|██████████|?100/100?[00:01<00:00,?91.52it/s]

          ??例子2:在處理進度條的同時,輸出額外的處理信息,示例程序如下:

          #?-*-?coding:?utf-8?-*-

          import?time
          from?tqdm?import?tqdm

          pbar?=?tqdm(["a",?"b",?"c",?"d"])
          for?char?in?pbar:
          ????pbar.set_description("Processing?%s"?%?char)
          ????time.sleep(1)

          輸出如下:

          Processing?d:?100%|██████████|?4/4?[00:04<00:00,??1.00s/it]

          ??例子3:人工控制進度條的進度,示例代碼如下(為了演示效果,進度條沒有100%):

          #?-*-?coding:?utf-8?-*-

          import?time
          from?tqdm?import?tqdm

          with?tqdm(total=100)?as?pbar:
          ????for?i?in?range(5):
          ????????time.sleep(0.5)
          ????????pbar.update(10)

          輸出如下:

          50%|█████?????|?50/100?[00:02<00:02,?19.89it/s]

          ??更多的內(nèi)容請參考tqdm模塊的官網(wǎng):https://pypi.org/project/tqdm/ 。

          pyyaml

          ?&emsop;YAML是數(shù)據(jù)序列化格式,便于人的閱讀和交互,與JSON類似,常用于配置文件。pyyaml是Python用于操作YAML文件的模塊,支持常見的讀寫操作。
          ??例子1:YAML文件寫入,示例代碼如下:

          #?-*-?coding:?utf-8?-*-

          import?yaml

          json_data?=?{'name':?'Alice',
          ?????????????'age':?1956,
          ?????????????'job':?['Doctor',?'Driver',?'Worker']
          ?????????????}

          #?輸出
          y?=?yaml.dump(json_data,?default_flow_style=False).encode('utf-8').decode('unicode_escape')
          print(y)

          #?寫入到YAML文件
          with?open('./alice.yaml',?'w')?as?f:
          ????y?=?yaml.dump(json_data,?f)

          輸出結果如下(同時也會生成alice.yaml文件,內(nèi)容一致):

          age:?1956
          job:
          -?Doctor
          -?Driver
          -?Worker
          name:?Alice

          ??例子2:讀取YAML文件,示例代碼如下:

          #?-*-?coding:?utf-8?-*-

          import?yaml

          with?open("./alice.yaml",?'r',?encoding='utf-8')?as?ymlfile:
          ????cfg?=?yaml.safe_load(ymlfile)

          print(cfg)

          輸出結果如下:

          {'age':?1956,?'job':?['Doctor',?'Driver',?'Worker'],?'name':?'Alice'}

          ??YAML文件的輸出有其自身的規(guī)范,總結如下:

          1、大小寫敏感

          2、使用縮進表示層級關系

          3、縮進時不允許使用Tab鍵,只允許使用空格。

          4、縮進的空格數(shù)目不重要,只要相同層級的元素左側對齊即可

          5、#?表示注釋,從這個字符一直到行尾,都會被解析器忽略,這個和python的注釋一樣

          6、列表里的項用"-"來代表,字典里的鍵值對用":"分隔

          ??更多關于pyyaml的內(nèi)容,可以參考網(wǎng)址:https://pyyaml.org/wiki/PyYAMLDocumentation 。

          traceback

          ??traceback模塊提供了一個標準接口,用于提取,格式化和打印Python程序的堆棧跟蹤。它在打印堆棧跟蹤時完全模仿了Python解釋器的行為。簡單來說,這個模塊可以詳細跟蹤錯誤的信息,并能格式化輸出,這在程序調(diào)試時會很有用。
          ??用try...except...機制,我們可以捕捉到錯誤,但不會有詳細的錯誤信息,比如下面的程序:

          #?-*-?coding:?utf-8?-*-

          try:

          ????result?=?'1'?+?2
          ????print(result)

          except?Exception?as?err:

          ????print(err)

          程序的輸出如下:

          must?be?str,?not?int

          該輸出只告訴我們錯誤的內(nèi)容,但是沒有告訴我們錯在哪里,詳細的信息是什么,這樣的處理方式在項目中普遍存在的話,那么項目的開發(fā)簡直就是個災難。
          ??那么,換成traceback會有什么變化呢?

          #?-*-?coding:?utf-8?-*-

          import?traceback

          try:

          ????result?=?'1'?+?2
          ????print(result)

          except?Exception?as?err:

          ????print(traceback.format_exc())

          輸出結果如下:

          Traceback?(most?recent?call?last):
          ??File?"/Users/Jclian91/PycharmProjects/demo/delete.py",?line?7,?in?<module>
          ????result?=?'1'?+?2
          TypeError:?must?be?str,?not?int

          該輸出告訴我們程序的第7行出錯,以及具體的錯誤信息,這對程序的開發(fā)很有幫助。

          Python中文社區(qū)作為一個去中心化的全球技術社區(qū),以成為全球20萬Python中文開發(fā)者的精神部落為愿景,目前覆蓋各大主流媒體和協(xié)作平臺,與阿里、騰訊、百度、微軟、亞馬遜、開源中國、CSDN等業(yè)界知名公司和技術社區(qū)建立了廣泛的聯(lián)系,擁有來自十多個國家和地區(qū)數(shù)萬名登記會員,會員來自以工信部、清華大學、北京大學、北京郵電大學、中國人民銀行、中科院、中金、華為、BAT、谷歌、微軟等為代表的政府機關、科研單位、金融機構以及海內(nèi)外知名公司,全平臺近20萬開發(fā)者關注。

          長按掃碼添加“Python小助手”?

          一起討論Python的第三方模塊!

          ▼點擊成為社區(qū)會員? ?喜歡就點個在看吧

          瀏覽 22
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美成人无码片免费看A片秀色 | 怡红院院院麻豆 | 麻豆 天美 蜜桃 91 | 色哟哟――国产精品 | 三级片中文字幕 |