使用 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')
我是编码新手,试图找到一个简单的 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')