使用 python 更改具有特定字符串的行的位置

Change position of a line with a specific string, using python

我是编码新手,试图找到一个简单的 python 代码来重新排列一些行。行具有 select 的特定字符串。需要移动具有此特定字符串的那些行。

原文件内容:

element = element1
attribute1 = value1last
attribute2 = value2
attribute3 = value3

element =element2
attribute1 = value1last
attribute2 = value2
attribute3 = value3

注意:带有“last”的属性行,这一整行应该到每个元素的属性列表的末尾。

新文件格式:

element = element1
attribute2 = value2
attribute3 = value3
attribute1 = value1last

element =element2
attribute2 = value2
attribute3 = value3
attribute1 = value1last

感谢任何帮助。

试试这个:

with open('input.txt', 'r') as f:
    data = f.read().splitlines()
#print(data)

sep_lists = [[]]
for i in data:
    if not i:
        sep_lists.append([])
    else:
        sep_lists[-1].append(i)

#print(sep_lists)
for lists in sep_lists:
    for idx, elem in enumerate(lists):
        if 'last' in elem:
            last = idx
    lists.append(lists.pop(last))

with open('output.txt', 'w') as f:
    for lists in sep_lists:
        f.write('\n'.join(lists) + '\n\n')