编程学习网 > 编程语言 > Python > python文本教程(Python进行文本处理)
2023
06-05

python文本教程(Python进行文本处理)

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 <filename> ")
    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, \B, \s, \S 依赖于当前环境
re.M 多行模式
re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库

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

以上就是python文本教程(Python进行文本处理)的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取