如何通过附加"ndiff"中的相似行来获得编辑后的结果?
How to get the edited result by appending similar lines from "ndiff"?
我想从 file2.I 更新文件 1 想追加两者中相似的行 files.I 使用 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
你需要这样的东西
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()
我想从 file2.I 更新文件 1 想追加两者中相似的行 files.I 使用 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
你需要这样的东西
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()