Предположим, у меня есть такой сценарий:
![enter image description here](https://i.stack.imgur.com/kw9y6.png)
Моя конечная цель - сделать следующее (in_words, если изображение нечеткое):
1) Запустите команду linux "diff" между Master_File и файлом Slave_1, сохраните ее как Diff_1
2) Запустите команду linux "diff" между файлом Master_File и Slave_2, сохраните ее как Diff_2
3) Запустите команду linux "diff" между Master_File и файлом Slave_3, сохраните ее как Diff_3
4) Запустите команду linux "diff" между файлом diff_1 и diff_2, сохраните ее как Semi-Final-Diff
5) Запустите команду linux "diff" между Semi-Final-Diff и файлом diff_3 и сохраните ее как Final_Diff
Я пытался добиться этого с помощью метода «Reduce» от functools, но столкнулся с проблемами.
Допустим, я создал все начальные различия ...
from functools import reduce
total_diffs = ['1','2','3']
def diff_major(a,b):
out = run_os_command('diff -s '+str(a)+'_'+str(b)+' >diff_'+str(a)+str(b)+'.log')
def diff_to_diff(total_diffs):
d = []
for i in total_diffs:
d.append('diff_'+str(i)+'.log')
print d
reduce(diff_major, d)
Я получаю вывод:
['diff_1.log', 'diff_2.log', 'diff_3.log']
Diffing diff_1.log and diff_2.log
Diffing None and diff_3.log
Почему он сдувается во втором diffи меняет имя на НЕТ?И как мне этого добиться?