У меня есть код, который принимает входной файл журнала, построчно, анализирует его и создает форматированный вывод.
Каждая строка ввода аналогична "12|15|joe|2|N|15| | |"
.
Вывод должен быть ...
1 12 OK--- 15|joe|2|N|15| |
2 15 NO--- 12|2|N|15|3|
3 12 OK--- 15|joe|2|N|15| |
Однако мой код печатается ...
line 12OK--- 15
line 12OK--- 15
line 15NO--- 12
line 15NO--- 12
Вот мой код:
import sys
import os
import re
print ("hello");
filename= "data.txt"
mydata= []
with open(filename, "r") as f:
next(f)
index = 1
logic = True
for i in f:
st = i.split('|')
if len(st) == 1:
break
record_number= st[0]
size=st[1]
username=st[2]
transaction=st[3]
field_type=st[4]
numeric_value=st[5]
character_value=st[6]
date_value=st[7]
if field_type == 'N':
if character_value != ' ' or date_value != ' ' or numeric_value == ' ':
logic=False
elif field_type == 'C':
if numeric_value != ' ' or date_value != ' ' or character_value == ' ':
logic=False
elif field_type == 'D':
if numeric_value != ' ' or character_value != ' ' or date_value == ' ':
logic=False
new_st = st[0] + '|' + st[1] + '|' + st[2] + '|' + st[3] +' |' + st[4] + '|' + st[5] + '|' + st[6] + '|' + st[7]+'|'
if logic:
print("line " + st[0] + "OK--- " + st[1])
else:
print ("line " + st[1] + "NO--- " + st[0])
index = index + 1
В чем проблема с кодом?