python内置函数print输出到文件,实现日志记录的功能

# bulid time 2018-6-22
import os
import time def log(*args, **kwargs): # *kargs 为了通用 可不传
rule = "%Y/%m/%d %H:%M:%S" # 定义格式
value = time.localtime(int(time.time())) # 转换时间
dt = time.strftime(rule, value) # 根据规则转换时间
with open("./log", "a") as f: # 打开文件 把print函数输出的数据写入到文件
print(dt, *args, file=f, **kwargs) def main():
while True:
a = input("请输入:")
if a == "q":
log(__file__)
log(os.path.dirname("/home/kali/Desktop/log.py")) # 没有数据
log(os.path.abspath(os.path.dirname(__file__))) # 拿到当前路径
log(__name__) # __name__
log(os.path.abspath(__file__)) #当前文件绝对路径
log(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
log(os.path.join)
break
log(a) if __name__ == "__main__":
main()

python内置函数的file参数,可以实现把输出写入文件,而不再终端显示, 看了看看print的文档介绍, 写了一个小demo, 顺便还了解了一下os.path.* , 以及时间模块,不错不错!

功能说明: 获取输入内容, 写入文件, 输入"q",退出.  可以作为一个记录日志的小脚本

在当前目录生成logt.txt 文件

效果如下:

2018/07/18  18:36:46 hello world!
2018/07/18  18:37:00 life is short, you need python!
2018/07/18  18:37:02 log.py
2018/07/18  18:37:02 /home/kali/Desktop
2018/07/18  18:37:02 /home/kali/Desktop
2018/07/18  18:37:02 __main__
2018/07/18  18:37:02 /home/kali/Desktop/log.py
2018/07/18  18:37:02 /home/kali
2018/07/18  18:37:02 <function join at 0x7f1c5c206268>

上一篇:git终端提示符


下一篇:ipyparallel WordCount实现