Here's a pandas solution. First we employ read_csv() and use one or more spaces as our delimiter. We need to specify string (object) dtypes to get string values for the list items as in your output. If you want ints, you could skip the dtype argument and pandas will infer them. Next we groupby the fist column (0) and convert the values in column 1 to a list with apply. Finally, we use .to_dict to get a dictionary.
import pandas as pd
df = pd.read_csv('dir.txt', header=None, sep=r"[ ]{1,}", dtype='object')
directory = df.groupby(0)[1].apply(list).to_dict()
output:
{'037': ['125'], 'A1234': ['161', '106'], 'A456': ['185', '108']}