Uso do Python difflib

Hoje, fiz um conteúdo o mais parecido possível com o conteúdo especificado do conteúdo da lista e dedico alguns minutos para gravá-lo após terminar

O papel do difflib

Compare as diferenças entre 2 arquivos.

Ao usá-lo, basta importar o difflib diretamente

função get_close_matches

Combine o conteúdo mais semelhante para retornar o resultado

list1 = ["abc", "acd", "adf", "bcd", "buff"]
str1 = "abc"
result = difflib.get_close_matches(str1, list1)
print(result)

resultado da impressão:

['abc', 'bcd', 'acd']

Existem algumas outras funções no difflib como segue

 O papel de context_diff

Retorna uma linha de texto diferente, já que o retorno é uma lista e o conteúdo não pode ser visto, o seguinte é convertido em uma string

import difflib

text1 = "abc"
text2 = "bcde"

res1 = difflib.context_diff(text1, text2)
print("".join(res1))

imprimir resultado

 O papel do ndiff

Retorna o ponto de diferença de 2 arquivos

import difflib

text1 = "abc"
text2 = "bcde"

res1 = difflib.ndiff(text1, text2)
print("".join(res1))

 Pode ser visto que - e + sinta-se um pouco confuso, não entre em pânico, suas funções estão abaixo

símbolo significado
'-' Incluído na primeira linha da série, mas não na segunda.
'+' Incluído na segunda linha da série, mas não na primeira.
'' As duas linhas de série concordam.
'?' Existem diferenças incrementais.
'^' Existem personagens diferentes.

Comparando isso, podemos entender que -a significa que existe em text1, mas não em text2, +d, +e significa que existe em text2, mas não em text1

A função de comparação de ndiff e difflib é a mesma

 Vamos falar sobre o método compare de difflib.Differ()

Uso do Differ do difflib

import difflib

text1 = "abc"
text2 = "bcde"

res1 = difflib.ndiff(text1, text2)
print("".join(res1))

d = difflib.Differ()
result = d.compare(text1, text2)
print("".join(result))

imprimir resultado

 método HtmlDiff do difflib

import difflib

text1 = "abc"
text2 = "bcde"

res1 = difflib.ndiff(text1, text2)
print("".join(res1))
# Differ 比较差异
d = difflib.Differ()
result = d.compare(text1, text2)
print("".join(result))
# HtmlDiff 统计差异
d1 = difflib.HtmlDiff()
res2 = d1.make_file(text1, text2)
# 把比对结果写入到html中
with open("diff.html", "w") as f:
    f.write(res2)

Encontre diff.html no mesmo diretório do código e use o código do navegador

 Você pode ver claramente a diferença

método SequenceMatcher do difflib

import difflib

text1 = "abc"
text2 = "bcde"

res1 = difflib.ndiff(text1, text2)
print("".join(res1))
# Differ 比较差异
d = difflib.Differ()
result = d.compare(text1, text2)
print("".join(result))
# HtmlDiff 统计差异
d1 = difflib.HtmlDiff()
res2 = d1.make_file(text1, text2)
# 把比对结果写入到html中
with open("diff.html", "w") as f:
    f.write(res2)
# 2个文件的相似对
res3 = difflib.SequenceMatcher(None, text1, text2).quick_ratio()
print(res3)

imprimir resultado

 

Acho que você gosta

Origin blog.csdn.net/qq_33210042/article/details/131007868
Recomendado
Clasificación