请你帮忙知道如何在python代码中执行文件处理,每个记录有不同的布局,并且有3种类型的记录布局。
Field-1和2将是常量,可以用作记录标识符,记录字段用','分隔符 -
分隔记录类型记录结构
R1 ex - Id,Name1,Name2,Name3,Address{},Phones{}
R2 ex - Id,Year,Make,Model,Length
R3 ex - Id,Transactions{Trxn1,Trnx2,Trnx3,Trnx4}
R2 ex - Id,Name1,Name2,Name3,Address{},Phones{}
R2 ex - Id,Year,Make,Model,Length
R1 ex - Id,Transactions{Trxn1,Trnx2,Trnx3,Trnx4}
答案 0 :(得分:1)
你的问题非常模糊,但以下内容可能会让你开始:
您可以在for
循环中以字符串形式读取文件的每一行,然后使用fields = line.split(',')
将其分解为可变长度的字段值列表。然后,您可以使用fields[0]
和fields[1]
的值来确定您正在处理的类型记录,并根据需要处理剩余的字段值。
这里有一些代码显示了如何处理从文件中读取的行:
H2 = ['Id', 'Year', 'Make', 'Model', 'Length']
line = 'B42,2015,Ford,F-150,243.7'
fields = line.split(',')
record_id = fields[0][0]
if record_id == 'A':
record = dict(zip(H1, fields))
print('{Id}, {Name1}, {Name2}, {Name3}, {Address}, {Phones}'.format(**record))
elif record_id == 'B':
record = dict(zip(H2, fields))
print('{Id}, {Year}, {Make}, {Model}, {Length}'.format(**record))
elif record_id == 'C':
pass # ... etc
输出:
B42, 2015, Ford, F-150, 243.7