Как получить отредактированный результат, добавив похожие строки из «ndiff»? - PullRequest
0 голосов
/ 05 февраля 2019

Я хочу обновить file1 из file2.Я хочу добавить строки, которые похожи в обоих файлах. Я получил результат сравнения с помощью difflib.ndiff (). Как добавить строки, которые были изменены отдельно?

import difflib  

file1='file1.txt'  
file2='file2.txt'

def read():    
    ndiffout=open('diffresult.txt','w+')  
    f1_text=file1.readlines()  
    f2_text=file2.readlines()  
    for line in difflib.ndiff(f1_text,f2_text):  
        print line  
        ndiffout.write(line)

def fetchdiff():  
    ndiffout=open('diffresult.txt','r')  
    lines=ndiffout.readlines()  
    s=''.join([line[0] for line in lines])  
    print s  

read()  
fetchdiff() 

file1.txt

apple  
mango  
orange

file2.txt

aplee  
manngo  
grapes

diffresult.txt

- apple  
?  -  
+ aplee  
?     +  
- mango  
+ manngo  
?   +  
- orange  
+ grapes

Ожидаемый результат:

apple  
mango  
orange

1 Ответ

0 голосов
/ 05 февраля 2019

Вам нужно что-то вроде этого

import difflib

file1 = 'file1.txt'
file2 = 'file2.txt'
df_file = 'diffresult.txt'


def read():
    with open(file1, 'r') as f1, open(file2, 'r') as f2, open(df_file, 'w') as fw:
        f1_text = f1.readlines()
        f2_text = f2.readlines()
        for line in difflib.ndiff(f1_text, f2_text):
            if line.startswith('- '):
                fw.write(line[2:])


def fetchdiff():
    with open(df_file, 'r') as f:
        for line in f.readlines():
            print(line)


if __name__ == '__main__':
    read()
    fetchdiff()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...