Как получить отредактированный результат, добавив похожие строки из "ndiff"?
Я хочу обновить 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 ответ
Вам нужно что-то вроде этого
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()