Вот схема (не проверенная) ... в основном вы делаете это по одной строке за раз
for line in infile:
data = line.rstrip("\n").split("|")
kind = data[0]
# start of changes
if kind == "OBR":
data[7] += "0000" # check that 7 is correct!
# end of changes
outrecord = "|".join(data)
outfile.write(outrecord + "\n")
Выше предполагается, что вы выбираете цели фиксации по типу линии (пример: «OBR») и индексу столбца (пример: 7). Если таких целей всего несколько, просто добавьте больше похожих операторов исправления. Если целей много, вы можете указать их так:
fix_targets = {
"OBR": [7],
"XYZ": [1, 42],
}
и код fix_up будет выглядеть так:
if kind in fix_targets:
for col_index in fix_targets[kind]:
data[col_index] += "0000"
Вы можете в любом случае добавить код, чтобы проверить, что данные [col_index] действительно являются датой в формате ГГГГММДД перед ее изменением.
Ни один из вышеперечисленных адресов не удаляет нежелательные заголовки, потому что вы не показали пример данных. Я догадываюсь , что применение ваших замен к каждой строке (и избегание написания строки, если после замен она станет только пробелом) сделают свое дело.