## Placez Les misérables.txt et Admissibles.txt dans le même dossier que ce fichier.
from os import chdir
chdir(r"C:\Users\Prenom\Documents\TP9")  # adapter le chemin

## Schéma type : open / traiter / close.


def nb_caracteres(nom_fichier):
    fichier = open(nom_fichier, "r", encoding="utf8")
    contenu = fichier.read()
    fichier.close()
    return len(contenu)

def nb_lignes(nom_fichier):
    fichier = open(nom_fichier, "r", encoding="utf8")
    lignes = fichier.readlines()
    fichier.close()
    return len(lignes)

def affiche_contenu(nom_fichier):
    fichier = open(nom_fichier, "r", encoding="utf8")
    contenu = fichier.read()
    fichier.close()
    print(contenu)


def nb_mots(nom_fichier):
    fichier = open(nom_fichier, "r", encoding="utf8")
    contenu = fichier.read()
    fichier.close()
    contenu = contenu.replace("\n", " ")
    mots = contenu.split()
    return len(mots)

# print(nb_lignes("Les misérables.txt"))
# print(nb_mots("Les misérables.txt"))

# fichier = open("Les misérables.txt", "r", encoding="utf8")
# contenu = fichier.read()
# fichier.close()
# contenu = contenu.replace("Fantine", "Nicky")
# fichier = open("Les misérables 2.txt", "w", encoding="utf8")
# fichier.write(contenu)
# fichier.close()


## Admissibles

def conversion(ligne):
    parties = ligne.rstrip("\n").split(" ; ")
    return [int(parties[0]), parties[1], parties[2], int(parties[3])]

def listeCandidats():
    fichier = open("Admissibles.txt", "r", encoding="utf8")
    lignes = fichier.readlines()
    fichier.close()
    return [conversion(ligne) for ligne in lignes]

def nb_admissibles():
    cpt = 0
    for candidat in listeCandidats():
        if candidat[2] == "Admissible":
            cpt = cpt + 1
    return cpt

def nb_serie(n):
    cpt = 0
    for candidat in listeCandidats():
        if candidat[3] == n:
            cpt = cpt + 1
    return cpt

def resultat(numero):
    for candidat in listeCandidats():
        if candidat[0] == numero:
            if candidat[2] == "Admissible":
                print("Bravo ! Tu es admissible. Tu passeras en série d'oral numéro {}.".format(candidat[3]))
            else:
                print("Désolé mais tu n'es pas admissible. Retente ta chance l'année prochaine !")
            return


## Écriture

def table(N):
    fichier = open("table de {}.txt".format(N), "w", encoding="utf8")
    for k in range(1, 11):
        fichier.write("{} x {} = {}\n".format(N, k, N * k))
    fichier.close()

def copie(nom_fichier):
    fichier = open(nom_fichier, "r", encoding="utf8")
    contenu = fichier.read()
    fichier.close()
    nouveau = nom_fichier.replace(".txt", "-copie.txt")
    fichier = open(nouveau, "w", encoding="utf8")
    fichier.write(contenu)
    fichier.close()

# Script interactif (à décommenter pour tester) :
# nom_fichier = input("Entrer un nom de fichier : ")
# choix = input("Enregistrer de nouvelles lignes (a) ou afficher le contenu (r) ? ")
# if choix == "r":
#     fichier = open(nom_fichier, "r", encoding="utf8")
#     print(fichier.read())
#     fichier.close()
# else:
#     fichier = open(nom_fichier, "a", encoding="utf8")
#     ligne = input("")
#     while ligne != "":
#         fichier.write(ligne + "\n")
#         ligne = input("")
#     fichier.close()
