BO_ 2147483744 Car_Signals_0x60: 21 Vector__XXX
SG_ Zero_Byte : 0|8@1+ (1,0) [0|0] "NA" Vector__XXX
SG_ Sensor_Protocol_Version : 8|8@1+ (1,0) [3|3] "counter" Vector__XXX
SG_ reserved1 : 16|1@1+ (1,0) [0|0] "NA" Vector__XXX
SG_ VehicleSpeed : 17|14@1+ (0.01,0) [0|100] "m/s" Vector__XXX
SG_ VehicleSpeedValid : 31|1@1+ (1,0) [0|1] "bool" Vector__XXX
VAL_ 2147483744 VehicleSpeedValid 1 "valid" 0 "invalid" ;
VAL_ 2147483744 VehicleYawValid 1 "valid" 0 "invalid" ;
VAL_ 2147483744 Wiper 1 "On" 0 "Off" ;
以上是输入文件'car.dbc'。
import csv
import re
import xlsxwriter
from openpyxl import Workbook
with open('car.dbc','r') as rf:
#with open('newsmt.xls','w') as wf:
for Nrows,row in enumerate(rf):
tokens=row.split(' ')
#Nrows += 1
if '' in tokens:
if 'SG_' in tokens:
newVar = tokens
Signal = newVar[2]
#print (newVar)
n = Signal #---> syn-1
wb = Workbook()
ws = wb.active
for row,i in enumerate(n):
column_cell = 'B'
ws[column_cell+str(row+2)] = str(i)
wb.save("row_creation_loop.xlsx")
if 'VAL_' in tokens:
var = tokens
Signame = var[2]
Valuetable = var[3:7]
Sname = Signame
Vname = Valuetable
wb = Workbook()
ws = wb.active
for row,i in enumerate(Sname):
column_cell = 'C'
ws[column_cell+str(row+2)] = str(i)
for row,i in enumerate(Vname):
column_cell = 'C'
ws[column_cell+str(row+2)] = str(i)
wb.save("row_creation_loop.xlsx")
:在代码片段中,将“n”的值写入excel列'B'时,它只获取最后存储的值/字符串并执行for循环并将其写入excel列,但正如我所期望的那样在每一行中写下每个“n”值。