【小技巧】python print方法重写

print方法的参数

print方法的参数:(在python3的命令行执行help(print)就可以看到)

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

将 value 打印到一个输出流,默认的输出流为 sys.stdout。

可选参数有:
file: 使用一个文件对象作为输出目标,默认值为当前输出流 sys.stdout;
sep: 输出的多个 value 之间的分隔符,默认为一个空格;
end: 完成所有 value 的输出之后在其后添加的字符,默认为 \n 换行符;
flush: 布尔值,是否立即刷新缓冲区,即立刻将数据写入到磁盘文件;
关于flush,还有一点要说,默认情况下,flush 值为 False,这时只有当缓冲区满,操作系统才会将数据写入文件中。

而close,也是在内部先调用 flush 方法来刷新缓冲区,再执行关闭操作,这样即使缓冲区没有满,也可以强制写入数据,保证了数据的完整性。
如果进程意外退出或正常退出时为close文件对象,缓存区的内容将会丢失。

举例:重写print方法为log_print

# 重写log_print方法,加入时间信息
def log_print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False):
    print("当前时间:" + datetime.now().strftime('%Y-%m-%d %H:%M:%S')) # 这样每次调用log_print()的时候,会先输出当前时间,然后再输出内容
    print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

用logging

import logging
logging.basicConfig(format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: \
      %(message)s', level=logging.INFO)

logging.info('begin...') 
# 输出样式:
# 2021-01-05 16:23:58,046 - main.py[line:92] - INFO:      begin...
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值