Kai Engert f0b0be2
#!/usr/bin/python
Kai Engert f0b0be2
Kai Engert f0b0be2
# Expected input is a file, where blocks of lines are separated by newline.
Kai Engert f0b0be2
# Blocks will be sorted.
Kai Engert f0b0be2
# Intention is to prepare files for comparison, were lines inside each block are
Kai Engert f0b0be2
# in stable order, but the order of blocks is random.
Kai Engert f0b0be2
Kai Engert f0b0be2
import sys
Kai Engert f0b0be2
import string
Kai Engert f0b0be2
Kai Engert f0b0be2
if (len(sys.argv) != 2):
Kai Engert f0b0be2
    print "syntax: " + sys.argv[0] + " input-filename"
Kai Engert f0b0be2
    sys.exit(1)
Kai Engert f0b0be2
Kai Engert f0b0be2
filename = sys.argv[1]
Kai Engert f0b0be2
Kai Engert f0b0be2
block = []
Kai Engert f0b0be2
block_list = []
Kai Engert f0b0be2
with open(filename, 'r') as f:
Kai Engert f0b0be2
    for line in f:
Kai Engert f0b0be2
        if (len(line) == 1):
Kai Engert f0b0be2
            if len(block) == 0:
Kai Engert f0b0be2
                continue
Kai Engert f0b0be2
            else:
Kai Engert f0b0be2
                combined_string = string.join(block, '')
Kai Engert f0b0be2
                block_list.append(combined_string)
Kai Engert f0b0be2
                block = []
Kai Engert f0b0be2
        else:
Kai Engert f0b0be2
            block.append(line)
Kai Engert f0b0be2
Kai Engert f0b0be2
block_list.sort()
Kai Engert f0b0be2
Kai Engert f0b0be2
for block in block_list:
Kai Engert f0b0be2
    print block