через for он выводит как двумерный массив, а не строку
['0 0 1 1 ---- x1 y1 r1 v1\n', '223 52 1 1 ---- x2 y2 r2 v2\n']
variables = {}
with open('ttt', 'r') as f:
for l in f:
values, names = l.split('----')
print(values, names)
d = dict(zip(names.split(), values.split()))
variables.update(d)
print(variables)