Ваш код не работает, потому что списки alines
и blines
содержат строки, заканчивающиеся символами '\ n', поэтому сравнение всегда заканчивается неудачей.
Следующий код удаляет '\ n'символы, а также исключает второй цикл «для»:
with open('A.txt', 'r') as fh:
# Splitlines gets rid of the '\n' endlines
alines = fh.read().splitlines()
with open('B.txt', 'r') as fh:
# Splitlines gets rid of the '\n' endlines
blines = fh.read().splitlines()
with open('C.txt', 'w') as fh:
for line in blines:
# Split the file name
parts = line.split(' ', 1)
# Look up the filename
if parts[0] in alines:
fh.write(line + '\n')