在 python 中每隔 x 行反转文本块

Reverse block of text every x lines in python

我确信这是一个简单的读取行解决方案。我花了一些时间试图解决它但没有成功。

我有一段文字是:

"This is the text 1"
0.0 2.0 2.0 2.0    
0.0 0.0 4.0 0.0    
0.0 0.0 0.0 0.0    
0.0 0.0 0.0 0.0    
0.0 0.0 0.0 0.0    
0.0 0.0 0.0 0.0
"This is the text 2"
0.0 5.0 3.0 5.0    
0.0 0.0 6.0 0.0    
0.0 0.0 0.0 0.0    
0.0 0.0 0.0 0.0    
0.0 0.0 0.0 0.0    
0.0 0.0 0.0 0.0

我正在努力将其更改为:

"This is the text 1"
0.0 0.0 0.0 0.0    
0.0 0.0 0.0 0.0    
0.0 0.0 0.0 0.0    
0.0 0.0 0.0 0.0    
0.0 0.0 4.0 0.0    
0.0 2.0 2.0 2.0
"This is the text 2"
0.0 0.0 0.0 0.0    
0.0 0.0 0.0 0.0    
0.0 0.0 0.0 0.0    
0.0 0.0 0.0 0.0    
0.0 0.0 6.0 0.0    
0.0 5.0 3.0 5.0

非常感谢任何帮助。 谢谢

代码:

f = open("file.txt", "rb")
    s = f.readlines()
    f.close()
    f = open("newtext.txt", "wb")
    f.writelines(s[::-1])
    f.close()

Returns 整个 txt 文件反转。

这是在假设文本之间的行数始终一致的情况下工作的。

# Open file, split on newlines into a list
with open('file.txt') as f:
    data = f.read().splitlines()
# Break list into multiple lists 7 items long
# this covers the text and the 6 sets of numbers that follow
newlist = [data[i:i + 7] for i in range(0, len(data), 7)]

output = []
# Append the text, then iterate backwards across each list, stopping short of the text
for item in newlist:
    output.append(item[0])
    for x in item[:0:-1]:
        output.append(x)
# output to text file, adding a newline character at the end of each row
with open('newtext.txt', 'w') as f:
    for item in output:
        f.write('{}\n'.format(item))