python扩展

补充一些有趣的知识

 

1. sys模块方法的补充,打印进度条

import sys,time

for i in range(20):
    sys.stdout.write("#")
    sys.stdout.flush()
    time.sleep(0.1)

 2. 实现简单的shell sed替换功能

import sys

res = sys.argv 
print(res)
#命令行参数,在Terminal输入命令:python update_flie.py ,res接收到的结果为list第一个元素是程序本身

将a.txt文件中所有的e替换为x

Hello  everyone
Today is Saturday

代码: 执行命令: python update_file.py e x

import sys

find_str = sys.argv[1]     #找到需要替换的字母,argv的第二个元素
replace_str = sys.argv[2]  #替换成新的字母,argv的第三个元素

with open("a.txt", "r", encoding='utf-8') as f, open("b.txt", "w", encoding='utf-8') as fe:
    for line in f:
        if find_str in line:
            line = line.replace(find_str, replace_str)
        fe.write(line)

替换后b.txt文件:

Hxllo  xvxryonx
Today is Saturday

 3. 异常处理

最常用的一般是try,然后except  Exception捕获到异常信息,进行打印

如果想本地打印报错到详细信息,可以使用  traceback.print_exc() 

如果想写进日志文件,可以使用  msg = traceback.format_exc(), 接收返回的错误信息

import traceback

l = [1,2,3,4]

try:
    result = l[0]
    r = 1/0
    print(r)
except ZeroDivisionError as e:
    print('异常', e)
except Exception as e:
    traceback.print_exc() #打印异常堆栈信息,红色打印
    msg = traceback.format_exc() #返回了堆栈信息
    print("处理异常", msg)
else:
    print(result)
finally:
    print("finally") #不管出错没出错最后都执行
View Code

4. 日志 loguru 模块

python自带的logging模块,处理起来相对比loguru麻烦些。 Loguru 一个能彻底解放你的日志记录器。它即插即用,具备多种方式滚动日志、自动压缩日志文件、定时删除等功能。

除此之外,多线程安全、高亮日志、日志告警等功能也不在话下。

a. 需要安装

 pip install loguru 

b. 举例说明, 即可使用,可以打印debug/info/error级别错误

from loguru import logger

user_name = 'xiaoxiao'

log_file_path = "/Users/ywq/py_workspace/gs/tianHe/logs/server.log"
logger.debug(log_file_path, f'this is a debug flag')
logger.info(log_file_path, " this is a info flag")
logger.error(log_file_path, 'this is a error flag')

c. 写入日志文件的具体方法

from loguru import logger

'''
 rotation : 每天创建一个日志文件
 retention: 日志内容有效期为5天
'''
log_file_path = "/Users/ywq/py_workspace/gs/tianHe/logs/server.log"
logger.add(log_file_path, rotation='1 day', retention='5 days')
my_log = logger

d. 其他python文件直接引入 my_log即可。

 

参考:https://cloud.tencent.com/developer/article/1849382

posted @ 2019-04-13 15:28  修仙小白  阅读(564)  评论(0编辑  收藏  举报