在Linux下进行项目调试的时候,需要运行生成的二进制文件(也可以理解为软件)并且存储在运行过程中产生的一些信息,可以参考下面这个脚本,防止以后用到的时候重新写。
关于一些基本函数的用法可以直接网上搜一下,也是一个不错的学习过程,附源码:
#! /usr/bin/env python
import os, sys
import csv
import re
def parse_file_name( fname ):
return fname.split('.')[0]
def run_abc( filename ):
cmd = 'abc -c \" read_aiger benchmarks/'+ filename +';compress2rs;if -g -K 6;ps; quit\" > /home/thm/Desktop/abc/data/'+filename.split('.')[0]+'.log'
os.system( cmd )
def extract_info_in_log( base_name ):
path = "/home/thm/Desktop/abc/data/" + base_name+".log"
count = 0
with open( path, 'r' ) as f:
for line in f:
strings = line.split()
if "[" in line:
lev=line.split('=')[6].split()[0]
nd=line.split('=')[3].split()[0]
return base_name, nd, lev
if __name__ == "__main__":
argc = len( sys.argv )
if( argc != 1 ):
print( "./test_if.py" )
exit( 1 )
else:
#create csv file
path = "abc_run.csv"
with open(path,'w') as f:
csv_write = csv.writer(f)
csv_head = ["Benchmark", " nd", "lev"]
csv_write.writerow( csv_head )
#foreach file run abc
for filename in os.listdir( "benchmarks" ):
run_abc( filename )
base_name = parse_file_name( filename )
strings = extract_info_in_log( base_name )
print(strings)
csv_write.writerow( strings )
由于时间关系,今天暂时放在这里,之后进行详细的解释,加油!