本文将介绍三个Python第三方模块的使用,分别是tqdm、pyyaml和traceback模块。:用于Python操作YAML文件的库;tracebak:用于详细跟踪错误消息的库。下面将对这三个模块进行简单的介绍和使用。tqdmtqdm是Python中一个可以显示循环的进度条模块,tqdm()可以直接包装可迭代对象。如果我们需要显示程序处理的进度条,就可以使用这个模块。下面将给出几个简单的使用tqdm的例子。示例1:直接使用进度条,示例程序如下:#-*-coding:utf-8-*-importtimefromtqdmimporttqdmforiintqdm(range(100)):time.sleep(0.01)的输出结果如下:100%|██████████|100/100[00:01<00:00,91.52it/s]例2:在处理进度条的同时输出附加处理信息。示例程序如下:#-*-coding:utf-8-*-importtimefromtqdmimporttqdmpbar=tqdm(["a","b","c","d"])forcharinpbar:pbar.set_description("Processing%s"%char)time.sleep(1)输出如下:Processingd:100%|██████████|4/4[00:04<00:00,1.00s/it]例3:手动控制进度条的进度,示例代码如下(为了演示效果,进度条不是100%):#-*-coding:utf-8-*-importtimefromtqdmimporttqdmwithtqdm(total=100)aspbar:foriinrange(5):time.sleep(0.5)pbar.update(10)输出是如下:50%|█████|50/100[00:02<00:02,19.89it/s]更多内容请参考tqdm模块官网:https://pypi.org/project/tqdm/。pyyaml&emsop;YAML是一种数据序列化格式,方便人类阅读和交互。它类似于JSON,常用于配置文件中。pyyaml是一个用于操作YAML文件的Python模块,支持常见的读写操作。示例一:YAML文件编写,示例代码如下:#-*-coding:utf-8-*-importyamljson_data={'name':'Alice','age':1956,'job':['Doctor','Driver','Worker']}#outputy=yaml.dump(json_data,default_flow_style=False).encode('utf-8').decode('unicode_escape')print(y)#写入YAMLfilewithopen('./alice.yaml','w')asf:y=yaml.dump(json_data,f)输出结果如下(alice.yaml文件也会同时生成,with相同内容):age:1956job:-Doctor-Driver-Workername:Alice例2:读取YAML文件,示例代码如下:#-*-coding:utf-8-*-importyamlwithopen("./alice.yaml",'r',encoding='utf-8')asymlfile:cfg=yaml.safe_load(ymlfile)print(cfg)输出如下:{'age':1956,'job':['Doctor','Driver','Worker'],'name':'Alice'}YAML文件输出有自己的规范,总结如下:1.区分大小写2.使用缩进表示层级关系3.Tab键不是允许独立ntation,只允许有空格。4.缩进空格的个数不重要,只要同级元素左对齐即可。5.#表示注释。从这个字符到行尾,解析器将忽略它。这个和python的注释一样6.在列表中字典中的项用“-”表示,字典中的键值对用“:”分隔更多关于pyyaml的内容可以参考网址:https://pyyaml.org/wiki/PyYAMLDocumentation。tracebacktraceback模块提供了一个标准接口,用于提取、格式化和打印Python程序的堆栈跟踪。它完全模仿了Python解释器在打印堆栈跟踪时的行为。总之,这个模块可以详细跟踪错误信息并格式化输出,这在调试程序时会有用。有了try...except...机制,我们可以捕获错误,但是不会有详细的错误信息,比如下面的程序:#-*-coding:utf-8-*-try:result='1'+2print(result)exceptExceptionaserr:print(err)程序的输出如下:必须是str,不能是int这个输出只告诉我们错误的内容,并没有告诉我们错误在哪里就是,详细的信息是什么,所以如果在项目中普遍采用这种处理方式,那么项目的开发简直就是一场灾难。那么,如果你切换到回溯会发生什么?#-*-coding:utf-8-*-importtracebacktry:result='1'+2print(result)exceptExceptionaserr:print(traceback.format_exc())输出结果如下:Traceback(mostrecentcalllast):File"/Users/Jclian91/PycharmProjects/demo/delete.py",line7,in
