本文將會介紹3個Python第三方模塊的使用方法,它們分別是tqdm
, pyyaml
和traceback
模塊,各自的用途描述以下:python
tqdm
: 能夠顯示循環的進度條;pyyaml
:Python操做YAML文件的庫;tracebak
:詳細追蹤錯誤信息的庫。下面將會給出這3個模塊的簡單介紹和使用。json
tqdm是Python中能夠顯示循環的進度條模塊,tqdm()能夠直接包裹iterable的對象。若是咱們須要顯示程序處理的進度條時,咱們能夠使用該模塊。
下面將給出幾個簡單使用tqdm的例子。
例子1:直接使用進度條,示例程序以下:調試
# -*- coding: utf-8 -*- import time from tqdm import tqdm for i in tqdm(range(100)): time.sleep(0.01)
輸出結果以下:code
100%|██████████| 100/100 [00:01<00:00, 91.52it/s]
例子2:在處理進度條的同時,輸出額外的處理信息,示例程序以下:orm
# -*- 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)
輸出以下:ip
50%|█████ | 50/100 [00:02<00:02, 19.89it/s]
更多的內容請參考tqdm
模塊的官網:https://pypi.org/project/tqdm/ 。utf-8
&emsop;YAML
是數據序列化格式,便於人的閱讀和交互,與JSON
相似,經常使用於配置文件。pyyaml
是Python用於操做YAML
文件的模塊,支持常見的讀寫操做。
例子1:YAML文件寫入,示例代碼以下:unicode
# -*- 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文件,內容一致):
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
文件的輸出有其自身的規範,總結以下:
一、大小寫敏感 二、使用縮進表示層級關係 三、縮進時不容許使用Tab鍵,只容許使用空格。 四、縮進的空格數目不重要,只要相同層級的元素左側對齊便可 五、# 表示註釋,從這個字符一直到行尾,都會被解析器忽略,這個和python的註釋同樣 六、列表裏的項用"-"來表明,字典裏的鍵值對用":"分隔
更多關於pyyaml
的內容,能夠參考網址:https://pyyaml.org/wiki/PyYAMLDocumentation 。
traceback
模塊提供了一個標準接口,用於提取,格式化和打印Python程序的堆棧跟蹤。它在打印堆棧跟蹤時徹底模仿了Python解釋器的行爲。簡單來講,這個模塊能夠詳細跟蹤錯誤的信息,並能格式化輸出,這在程序調試時會頗有用。
用try...except...
機制,咱們能夠捕捉到錯誤,但不會有詳細的錯誤信息,好比下面的程序:
# -*- coding: utf-8 -*- try: result = '1' + 2 print(result) except Exception as err: print(err)
程序的輸出以下:
must be str, not int
該輸出只告訴咱們錯誤的內容,可是沒有告訴咱們錯在哪裏,詳細的信息是什麼,這樣的處理方式在項目中廣泛存在的話,那麼項目的開發簡直就是個災難。
那麼,換成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行出錯,以及具體的錯誤信息,這對程序的開發頗有幫助。
本次分享較爲簡單,但願能對讀者有用。 本次分享到此結束,感謝你們閱讀~