'Change position of a line with a specific string, using python
I am new to coding, trying to find a simple python code for re-arranging some lines. Lines have specific string to select. Those lines with this specific string need to be moved.
Original File content:
element = element1
attribute1 = value1last
attribute2 = value2
attribute3 = value3
element =element2
attribute1 = value1last
attribute2 = value2
attribute3 = value3
Note: the attribute line with "last" in it, this whole line should go to the end of each element's attribute list.
New file format:
element = element1
attribute2 = value2
attribute3 = value3
attribute1 = value1last
element =element2
attribute2 = value2
attribute3 = value3
attribute1 = value1last
Appreciate any help on this.
Solution 1:[1]
Try this:
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')
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Rabinzel |