#!/usr/bin/python3
import os
import sys
input_list = input("please in put file name: src file,ext file1,ext file2,...(ext file name must be *.gz)\n")
input_list_split = input_list.split(',')
#############################################################################################################################################################################################################################
# gzip & open src file
#
#############################################################################################################################################################################################################################
print("src file is %s\n" % (input_list_split[0]))
src_file_split = input_list_split[0].split('.')
if src_file_split[-1] == 'gz' :
os.system("gzip -d %s" % (input_list_split[0]))
cur_src_file = '.'.join(src_file_split[0:-1])
else :
cur_src_file = '.'.join(src_file_split)
for cur_ext_file in input_list_split[1:] :
cur_src_file_handle = open(cur_src_file)
print(cur_ext_file)
#########################################################################################################################################################################################################
## del match word, first step
#########################################################################################################################################################################################################
if not os.path.exists('del_interconnect_tmp.log') :
os.mknod('del_interconnect_tmp.log')
del_interconnect_tmp_handle = open('del_interconnect_tmp.log','r+')
while (1) :
cur_line = cur_src_file_handle.readline()
if (len(cur_line) == 0) :
break
else :
if 'XXXXX' in cur_ext_file :
if '/xxxxx/' in cur_line :
continue ##do not write matched line in tmp file
else :
del_interconnect_tmp_handle.write(cur_line)
elif 'XXXXX' in cur_ext_file :
if '/xxxxx/' in cur_line :
continue
else :
del_interconnect_tmp_handle.write(cur_line)
else :
print("extract file name Error!!!")
#########################################################################################################################################################################################################
## del empty cell, second step
#########################################################################################################################################################################################################
del_interconnect_tmp_handle.seek(0,os.SEEK_SET)
if not os.path.exists('del_empty_cell.log') :
os.mknod('del_empty_cell.log')
del_empty_cell_handle = open('del_empty_cell.log','r+')
while (1) :
cur_line = del_interconnect_tmp_handle.readline()
if (len(cur_line) == 0) :
break
else :
#print(del_empty_cell_handle.tell())
if cur_line[0:-1] == '(CELL' :
cur_line_tmp_0 = cur_line
cur_line_tmp_1 = del_interconnect_tmp_handle.readline()
cur_line_tmp_2 = del_interconnect_tmp_handle.readline()
cur_line_tmp_3 = del_interconnect_tmp_handle.readline()
cur_line_tmp_4 = del_interconnect_tmp_handle.readline()
cur_line_tmp_5 = del_interconnect_tmp_handle.readline()
cur_line_tmp_6 = 'xxx'
if '(DELAY' in cur_line_tmp_2 or ('(ABSOLUTE' in cur_line_tmp_4 and cur_line_tmp_5[0:-1] == ' )') :
while (1) :
if cur_line_tmp_6[0] == ')' :
break
else :
cur_line_tmp_6 = del_interconnect_tmp_handle.readline()
continue## dont write matched empty cell into file, first we need store each cell(multiple lines) for match
else :
del_empty_cell_handle.write(cur_line_tmp_0)
del_empty_cell_handle.write(cur_line_tmp_1)
del_empty_cell_handle.write(cur_line_tmp_2)
del_empty_cell_handle.write(cur_line_tmp_3)
del_empty_cell_handle.write(cur_line_tmp_4)
del_empty_cell_handle.write(cur_line_tmp_5)
else :
del_empty_cell_handle.write(cur_line)
print("del_empty_cell write done")
del_interconnect_tmp_handle.close()
del_empty_cell_handle.close()
cur_src_file_handle.close()
os.system("rm -fr del_interconnect_tmp.log")
os.system("rm -fr del_empty_cell.log.gz")
os.system("gzip del_empty_cell.log")
if 'gz' in cur_ext_file :
os.system("mv del_empty_cell.log.gz %s" % (cur_ext_file))
else :
os.system("mv del_empty_cell.log.gz %s.gz" % (cur_ext_file))
os.system("gzip %s" % (cur_src_file))
1.多行操作必须把多行暂存起来
2.aaa[0:-1]不包含倒数第一个元素
3.aaa[-1]倒数第一个元素
4.gz文档的处理