demo版本:
import os
def strs(name):
print('\n\nfile:'+ name)
state=1
prefix='wrispgc 1 '
streamid=' 0'
values=[]
with open(name, 'r', encoding='utf-8') as f:
for line in f.readlines():
if line[0]==';' or line[0]=='\n': continue
line = line.strip('\n') #去除文本中的换行符
#addr=line[3:7]
if '#HW' in line :
prefix='wrreg 1 '+ input('HW baseaddr:')
streamid=''
state=3
elif '#DMARW' in line :
prefix='wrispdma 1 1 '
streamid=' 0'
elif '#ISP' in line :
prefix='wrispgc 1 '
streamid=' 0'
if state==3 :
index=line[6]
if int(line[6],16)%4==0:
addr=hex(int(line[3:7],16)+3)[2:]
if int(line[6],16)%4==1:
addr=hex(int(line[3:7],16)+1)[2:]
if int(line[6],16)%4==2:
addr=hex(int(line[3:7],16)-1)[2:]
if int(line[6],16)%4==3:
addr=hex(int(line[3:7],16)-3)[2:]
elif state==1 or state==2 :
addr=line[3:7]
addr_zfill=str(addr).zfill(4)
value=(prefix+addr_zfill+' '+line[8:10]+streamid+';'+line[3:7]+'='+line[8:]+'\n')
values.append(value)
print(prefix+addr_zfill+' '+line[8:10]+streamid+';'+line[3:7]+'='+line[8:])
return values
#input()
f.close()
path = '.'
for name in os.listdir(path):
if name[-4:] == '.txt':
if name[-3:] == '.py' or '_32bit' in name : continue
fileList = name.split(".")[0]
sqlfile = open(fileList+"_32bit.txt", "a")
values=strs(name)
print(values)
sqlfile.writelines(values)
sqlfile.close()
input('\nend')
本文介绍了一个简单的文件转换工具,该工具能够读取特定格式的文本文件,并将其转换为另一种格式,适用于硬件描述语言的配置文件转换场景。文章详细解释了如何逐行读取文件、处理文本内容并进行相应的格式转换。
4378

被折叠的 条评论
为什么被折叠?



