Python在IC中的应用——文本处理

编程语言及工具

106人已加入

描述

Python在IC中的应用,主要处理的对象以文本为主,这里简单举一个例子:

SDF后仿中往往生成的log中会有一些违例信息,Timing violation路径或者$setuphold违例,这些信息混杂在后仿log中。

下面这个脚本就是简单的剔除这些信息,得到一个简化的类似前仿的log;

下面脚本参考:

用法:./simsdf_clean.py sim.log

生成简化后的sim_vio_clean.log和违例信息sim_vio.log

#!/tools/python-3.6.12/bin/python3.6
# -*- coding: UTF-8 -*- 

import os
import sys
import re

output_filename='sim_vio_clean.log'
vio_filename='sim_vio.log'

vio_regex         = re.compile(r".*Timing violation|setuphold.*")
lines= ""

if len(sys.argv) > 1:
    file_path = sys.argv[1]
else:
    print("[ERROR] ====== Please enter a file_path")
    print("[Usage]: python script.py  ")
    sys.exit()

#vio_clean
with open(file_path, "r") as f:
     for line in f:
      match = vio_regex.search(line)
      if match:
          continue          
      line = re.sub(r'^s*$', '', line)
      lines += line
with open(output_filename, "w") as f:
     f.write(lines)

##vio
with open(file_path, "r") as fin:
     with open(vio_filename, "w") as fout:
       for line in fin:
          match = vio_regex.search(line)
          if match:
             line_vio=line
             fout.write(line_vio)

其中简单说明re.compile 函数:

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。这个对象可以用于在后续的正则表达式匹配操作中重复使用。

语法格式为:

re.compile(pattern, flags=0)

pattern : 要编译的正则表达式字符串

flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:

re.I 忽略大小写

re.L 表示特殊字符集 w, W, , B, s, S 依赖于当前环境

re.M 多行模式

re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)

re.U 表示特殊字符集 w, W, , B, d, D, s, S 依赖于 Unicode 字符属性数据库

re.X 为了增加可读性,忽略空格和 # 后面的注释

编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • 热点推荐
  • python

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分