zoukankan      html  css  js  c++  java
  • [python] 日常撸码小case

    处理log时遇到一些东东

    对log 的处理

    1. 从第二行读起: for line in f.readlines()[1:]
    2. 最后一个元素是个带换行符以及双引号的str,怎么处理呢? .strip()去掉换行符, eval()去掉双引号
    3. 查找如果这一行中有 dip write,就详细分析,但会拿到 a_dip write,怎么办?
      3.1 求助了闪存哈哈哈,嗷神给了提示, 用startwith(), 于是 if dip write in line 改成了 if line.startswith('dip write')
    4. 需要将 size=10bgm=history 改写成dict
      4.1 urlparse 库可以轻松改dict:

      4.2 合并两个dict,summary = dict(a.items()+b.items())
         with open('/mnt/test_annie/test.log', 'r') as f:
                for line in f.readlines()[1:]:
                # for line in f.readlines():
                    if line.startswith('dip write'):
                        useful_list = line.split(' ')
                        new_file_from_log = eval(useful_list[-1].strip())
                        for item in useful_list:
                            if '=' in item:
                                item = dict(urlparse.parse_qsl(item))
                                checkpoint_log = dict(checkpoint_log.items() + item.items())
    

    对dir 的处理

    1. 用 instance.files.keys() 来获取路径下所有的files的path
    2. 用 sorted(instance.files.keys())[-1]来获取最新file的path
    3. 用 os.path.getsize(file_path)来获取file的size
    new_file_path = sorted(self.instance.files.keys())[-1]
    new_file_size = os.path.getsize(new_file_path)
    

    log 的存储

        cls.fh = logging.FileHandler('/mnt/test_annie/test.log')
        cls.instance.logger.addHandler(cls.fh)
  • 相关阅读:
    logstash 配置 logstash-forwarder (前名称:lumberjack)
    你不知道的if,else
    css样式
    表格 表单
    学习第一天练习
    唯有作茧自缚,方可破茧成蝶
    第一周复习二 (CSS样式表及其属性)
    第一周复习一 ( HTML表单form)
    汉企第一天小记
    C语言 -- register关键字
  • 原文地址:https://www.cnblogs.com/vivivi/p/12111634.html
Copyright © 2011-2022 走看看