예제 #1
0
def main(file_name):
    """Fonction qui s'effectuera lorsque l'on lance ce script"""
    f = open(file_name, "r")
    content = f.read()
    tab_lines0 = content.split('\n') #Sépare selon les lignes
    tab_lines = []
    for line in tab_lines0:
        if line != "":
            tab_lines.append(line) #On retire les lignes vides
    for i in range(0, len(tab_lines) - 1, 2):
        ruler = Ruler(tab_lines[i], tab_lines[i+1])
        ruler.compute()
        d = ruler.distance
        top, bottom = ruler.report()
        print("====== Comparaison # " + str(i//2 + 1) +" - distance = " + str(d))
        print(top)
        print(bottom)
    f.close()
예제 #2
0
def iter_rule(datfile: '.txt'):
    """
    itérateur qui parcoure le fichier texte et 
    effectue la comparaison de chaine sur les deux premières lignes qu'il trouve
    """
    with open(datfile, 'r') as f:
        string1 = ""
        string2 = ""
        for line in f:
            if line == '' or line == ' ' or line == '\n':  # on passe si la liste est vide
                pass
            elif string1 == '':  # on stocke la première ligne
                string1 = line
            elif string2 == '':  # on stocke la seconde ligne
                string2 = line

                ruler = Ruler(string1, string2)
                string1, string2 = '', ''  # on vide le stockage
                ruler.compute()
                top, bottom = ruler.report()

                yield ruler.distance, top, bottom
예제 #3
0
import argparse


# Pour récupérer le nom du fichier
parser = argparse.ArgumentParser()
parser.add_argument("nom_fichier", type=str, help='')
args = parser.parse_args()
nom = args.nom_fichier

# Construction de la dataframe
df = pd.read_csv(nom, sep='\t', header=None)
df.head(10)

# On remplace les lignes vides par des NaN pour implémenter dropna()
# Attention, le skip empty lines est implémenté dans le read_csv donc ces deux lignes risquent d'être redondante
df[0].replace('', np.nan, inplace=True)
df.dropna(inplace=True)

# On enlève la dernière ligne si le nombre de lignes n'est pas pair
if len(df) % 2 != 0:
    df = df.drop(len(df.index)-1)

for i in range(len(df)//2):
    ruler = Ruler(df[0][2*i], df[0][2*i+1])
    ruler.compute()
    a = ruler.distance
    top, bottom = ruler.report()
    print(f'====== example # {i+1} - distance = {a} ')
    print(top)
    print(bottom)
import sys
from ruler import Ruler

DATASET = sys.argv[1]

with open(DATASET, "r") as data:
    lines = data.readlines()
    l = len(lines) // 2
    for i in range(l):
        line1 = lines[2 * i]
        line2 = lines[2 * i + 1]
    if line1[-1] == '\n':
        line1 = line1[0:len(line1) - 1]
    if line2[-1] == '\n':
        line2 = line1[0:len(line2) - 1]

    R = Ruler(line1, line2)
    R.compute()
    print(f'=========== comparaison n° {i} -- distance = {R.distance}')
    top, bot = R.report()
    print(top)
    print(bot)
예제 #5
0
import sys
from ruler import Ruler

DATASET = sys.argv[1]
# L'argument envoyé par le sytème est [bundle.py, fichier.txt]

with open(DATASET, "r") as dataset:
    lignes = dataset.readlines()
    l = len(lignes) // 2  # On enlève éventuellement la dernière ligne
    for i in range(l):
        bringauche = str(lignes[2 * i])
        brindroit = str(lignes[2 * i + 1])
        if bringauche[-1] == '\n':  # on enlève les newlignes
            bringauche = bringauche[:-1]
        if brindroit[-1] == '\n':
            brindroit = brindroit[:-1]
        ruler = Ruler(bringauche, brindroit)
        ruler.compute()
        print(f'===== example {i} - distance = {ruler.distance}')
        (a, b) = ruler.report()
        print(a)
        print(b)
예제 #6
0
from ruler import Ruler

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("nom_fichier",
                    type=str,
                    help="fichier contenant des chaines à tester")
args = parser.parse_args()
nom = args.nom_fichier

with open('DATASET.csv', "r") as fichier:
    L = []
    for e in fichier:
        L.append(e)
    for i in range(0, len(L) - 1, 2):
        a = Ruler(L[i], L[i + 1])
        a.compute()
        top, bottom = a.report()
        print(f'''Example # {(i+1)//2 + 1} - distance = {a.distance}
        {top}
        {bottom}''')

# LE CODE MARCHE EN TAPANT python bundle.py DATASET.csv DANS ANACONDA PROMPT
예제 #7
0
parser.add_argument("fichier", help="le nom du fichier")
args = parser.parse_args()

with open(args.fichier, 'r') as f:
    sentinelle = True
    n = 0

    while sentinelle == True:
        try:
            b = next(f)
            n += 1
            c = next(f)
        except StopIteration:
            sentinelle = False
            break

        try:
            next(f)  # la ligne vide qu'il faut passer entre deux comparaisons
        except StopIteration:
            sentinelle = False  # cela signifie que la dernière ligne était vide
            break

        fragment = Ruler(b, c)
        fragment.compute()
        (top, bottom) = fragment.report()
        print(
            f"====== fragment #{n} - distance = {fragment.distance} \n{top}\n{bottom}"
        )

print("fin de la comparaison")