我有一个包含不同路径的巨大文本文件。我必须提取包含.o文件的路径。我这样做,但第一条路是没有得到提取。我需要做一个通用的代码来提取这种类型的文件 文件如下所示
----------。注释部分----------------
第18652节注:
00000000类型:未知条目类型
0000000 C名称:Altium
00000014说明:ltc
00000018类型:未知条目类型
00000024名称:Altium
0000002c描述:TriCore的任务VX工具集:对象链接器v6.0r1构建277
0000006c:序号07689630
00000078类型:未知条目类型
00000084名称:Altium
0000008c描述:ltc-o C:\00\u SIVA\TRW\SANDBOX\DAIMLER\u MRAV3\u V1.1149\BUILD\TriCore
000000ce:\u MM\u应用程序\t核心\u MM_应用程序输出-dC:\00\u湿婆\trw\sandbox\Daimler\u MRAv3
0000010f:\u v1.1149\MainMicro\Application\Os\LinkerCmd\Source\链接器.lsl你知道吗
0000014d:--错误限制=99999-OCLtxY--输出=C:\00\u SIVA\TRW\SANDBOX\DAIML
0000018e:ER\u MRAV3\u V1.1149\BUILD\TriCore\u MM\u APP\TriCore\u MM_应用程序:SREC:4-你知道吗
000001cf:MC:\00\u西瓦\TRW\SANDBOX\DAIMLER\u MRAV3\u V1.1149\BUILD\TriCore\u MM\u AP
00000210:p\TriCore\u毫米_APP.mapxml文件:XML--optimize=-删除未引用的节
00000251:ons,-第一次拟合递减,+复制表压缩,+删除重复
00000292:电子代码,-删除重复数据--映射文件=C:\00\u SIVA\TRW\SANDBOX\D
000002d3:AIMLER\u MRAV3\u V1.1149\BUILD\TriCore\u MM\u APP\TriCore\u MM_应用程序地图你知道吗
00000310:--映射文件--用户提供的初始化代码C:\00\u SIVA\TRW\SAN
00000351:DBOX\DAIMLER\u MRAV3\u V1.1149\MainMicro\Application\SafeTLib\SBST\SB
00000392:ST\U Kernel\u CoreTest.o C:\00\u SIVA\TRW\SANDBOX\DAIMLER\u MRAV3\u V1.1149
000003d3:\MainMicro\Application\SafeTLib\SBST\SBST\u Kernel\u ISG.o C:\00\u SIVA
00000414:\TRW\SANDBOX\DAIMLER\u MRAV3\u V1.1149\MainMicro\Application\SafeTLib
00000455:\SBST\SBST\u Kernel\u TestCode.o C:\00\u SIVA\TRW\SANDBOX\DAIMLER\u MRAV3
00000496:\u V1.1149\MainMicro\Application\SafeTLib\SBST\SBST\u RelocTable.o
import re
ftemp = open(r'D:/temp.txt','w+')
ftest = open(r'D:/test123.txt','w+')
infile = open(r'D:/HLDUMPTC_of_ELF_file.txt','r')
data = infile.readlines()
#print(type(data))
#print(len(data))
actual_data = []
for i in data:
a = i.rstrip('\n')
colon_split = a.split(':',1)
if(len(colon_split) > 1):
fdata=colon_split[1].lstrip()
actual_data.append(fdata)
#actual_data.append(colon_split[1])
ftemp.writelines(actual_data)
ftemp.close()
infile.close()
ftemp = open(r'D:/temp.txt','r')
temp_data = ftemp.readlines()
#print(type(temp_data))
temp_data1 = [x.lstrip(' ') for x in temp_data]
temp_data2 = [x.rstrip(' ') for x in temp_data1]
line = ''.join(temp_data2)
#print(type(line))
#print(len(line))
nameslist = line.split('.o')
#print(type(nameslist))
#ftest.writelines(nameslist)
#sbreak
ogslist=[]
ogscount = 0
for x in nameslist:
new = x + '.o'
newstr1 = new.lstrip(' ')
newstr = newstr1.replace('. o','.o')
ogstest = '-Ogs -o' in newstr
srctest = '.src' in newstr
if(ogstest == True):
ogslist.append(newstr)
ogscount += 1
continue
if(srctest == True):
continue
if(re.search('^[A-Z][:]',newstr)):
ftest.write(newstr)
ftest.write("\n")
#print(ogslist)
for a in ogslist:
res_spl = a.split('-Ogs -o')
file1 = res_spl[1].lstrip(' ')
file = file1.rstrip(' ')
oend = re.search('.o$',file)
if(oend == True):
ftest.write(file)
ftest.write("\n")
ftest.close()
ftemp.close()
### Final Formatting
fcheck = open(r'D:/test123.txt','r')
ffinal = open(r'D:/out.txt','w+')
check_data = fcheck.readlines()
for s in check_data:
ccnt = s.count('.o')
if(ccnt > 1):
final_split = s.split('.o')
if(len(final_split) > 0):
for k in final_split:
final = k + '.o'
ffinal.write(final)
ffinal.write("\n")
else:
ffinal.write(s)
ffinal.write("\n")
ffinal.close()
fcheck.close()
输出: C:\00\u SIVA\TRW\SANDBOX\DAIMLER\u MRAV3\u V1.1149\MainMicro\Application\SafeTLib\SBST\SBST\u Kernel\u ISG.o
C:\00\u SIVA\TRW\SANDBOX\DAIMLER\u MRAV3\u V1.1149\MainMicro\Application\SafeTLib\SBST\SBST\u Kernel\u TestCode.o
C:\00\u SIVA\TRW\SANDBOX\DAIMLER\u MRAV3\u V1.1149\MainMicro\Application\SafeTLib\SBST\SBST\u RelocTable.o
C:\00\u SIVA\TRW\SANDBOX\DAIMLER\u MRAV3\u V1.1149\MainMicro\Application\SafeTLib\SBST\SBST\TC16E\u TestCode.o
C:\00\u SIVA\TRW\SANDBOX\DAIMLER\u MRAV3\u V1.1149\MainMicro\Application\SafeTLib\SBST\SBST\u TC16P\u CoreTest.o
C:\00\u SIVA\TRW\SANDBOX\DAIMLER\u MRAV3\u V1.1149\MainMicro\Application\SafeTLib\SBST\SBST\u TC16P\u ISG.o
但是输出缺少第一条路径,即C:\00\u SIVA\TRW\SANDBOX\DAIMLER\u MRAV3\u V1.1149\MainMicro\Application\SafeTLib\SBST\SBST\u Kernel\u CoreTest.o
假设路径可以是任意位置,但用空格分隔,即:
相关问题 更多 >
编程相关推荐