73 lines
1.9 KiB
Python
Executable File
73 lines
1.9 KiB
Python
Executable File
#!/usr/bin/python3
|
|
|
|
import sys, re
|
|
|
|
pair_pattern = re.compile("# Sentence pair \((\d+)\)")
|
|
|
|
|
|
def getNextSentencePair(pairs_file):
|
|
first_line = pairs_file['file'].readline()
|
|
if first_line == '':
|
|
# we reached the end of file
|
|
pairs_file['nextPair'] = None
|
|
else:
|
|
nextPair = dict()
|
|
m = pair_pattern.match(first_line)
|
|
if m:
|
|
nextPair['number'] = int(m.group(1))
|
|
else:
|
|
raise Exception("Could not read sentence pair number from line: %s" %first_line)
|
|
lines = [first_line]
|
|
lines.append(pairs_file['file'].readline())
|
|
lines.append(pairs_file['file'].readline())
|
|
nextPair['lines'] = lines
|
|
pairs_file['nextPair'] = nextPair
|
|
|
|
files = []
|
|
for arg in sys.argv[1:]:
|
|
pairs_file = {'file':open(arg,'r'), 'nextPair':None}
|
|
getNextSentencePair(pairs_file)
|
|
files.append(pairs_file)
|
|
|
|
finished = False
|
|
while not finished:
|
|
youngest_file = None
|
|
for pairs_file in files:
|
|
if pairs_file['nextPair'] is not None:
|
|
# if the file is not at end
|
|
if youngest_file is None or pairs_file['nextPair']['number'] < youngest_file['nextPair']['number']:
|
|
youngest_file = pairs_file
|
|
if youngest_file is None:
|
|
finished = True
|
|
else:
|
|
print(''.join(youngest_file['nextPair']['lines']).rstrip())
|
|
getNextSentencePair(youngest_file)
|
|
|
|
|
|
|
|
for pairs_file in files:
|
|
pairs_file['file'].close()
|
|
|
|
"""
|
|
|
|
i = 0
|
|
for line in sys.stdin:
|
|
line = line.strip()
|
|
if i % 3 == 0:
|
|
current_example = [line]
|
|
m = p.match(line)
|
|
if m:
|
|
current_key = int(m.group(1))
|
|
else:
|
|
raise Exception("Wrong line: "+line)
|
|
elif i % 3 == 1:
|
|
current_example.append(line)
|
|
else:
|
|
current_example.append(line)
|
|
examples_dict[current_key] = current_example
|
|
i+=1
|
|
|
|
for key in sorted(examples_dict.keys()):
|
|
print ('\n'.join(examples_dict[key]))
|
|
"""
|