Я пишу программу, которая манипулирует строками в файле. Я хочу просто добавить литералы (строки, такие как SUB =X'1D'
, которые собираются в =X'1D' BYTE X'1D'
) выше ' LTORG'
в мой тестовый файл.
Проблема в том, что я собрал литералы над каждым LTORG в виде списка, вставил их в виде списка. Я хотел бы вставлять литералы по одному.
У меня есть такой вывод:
[' START 100', " SUB =X'1D'", ' LTORG', '["=X\'1D\' BYTE X\'1D\'"]', ' RESW
20', " SUB =X'0259'", " ADD =C'12345'", " MUL =X'4356'", " SUB =X'69'", '
LTORG', '["=X\'0259\' BYTE X\'0259\'", "=C\'12345\' BYTE C\'12345\'",
"=X\'4356\' BYTE X\'4356\'", "=X\'69\' BYTE X\'69\'"]', " ADD =C'05'", '
END EXA']
def handle_LTORG(self, testfile):
myfile.testfile = testfile
for index, line in enumerate(myfile.testfile):
line = line.split(" ", 3)
if len(line) > 2:
if line[2].startswith("=X") or line[2].startswith("=C"):
raw_literal = line[2]
instruction = 'BYTE'
operand = line[2][1:]
literal = [raw_literal, instruction, operand]
literal = ' '.join(literal)
myfile.literals.append(literal)
if line[1] == 'LTORG':
if myfile.literals is not None:
myfile.testfile.insert(index + 1, str(myfile.literals))
myfile.literals.pop(0)
Вторая-последняя строка в основном вызывает проблему. Он добавляет литералы, собранные в список, и вставляет их в виде упакованного списка, а не по одной строке на строку.
Я хочу, чтобы это выглядело так:
[' START 100', " SUB =X'1D'", ' LTORG', '"=X'1D' BYTE X'1D'"', ' RESW 20', " SUB =X'0259'", " ADD =C'12345'", " MUL =X'4356'", " SUB =X'69'", ' LTORG', '"=X'0259' BYTE X'0259'", "=C'12345' BYTE C'12345'", "=X'4356' BYTE X'4356'", "=X'69' BYTE X'69'", " ADD =C'05'", ' END EXA']