Bonjour a toutes et a tous ,
Je voulais :
Ecrire une fonction comptage , qui prenne en argument un nom de fichier d'entrée ( il se trouve ici dans mon /home/chris/Bureau/Essai ) et un nom de fichier de sortie .
Le fichier d'entrée est encodé en UTF-8 .
Le fichier d'entrée est laissé intact .
Pour chaque ligne en entrée, le fichier de sortie comporte une ligne qui donne le numéro de ligne, le nombre de mots , le nombre de caractères (y compris la fin de ligne), et la ligne d'origine.

Je maitrise tres peu mon sujet mais j'aimerai bien savoir comment faire pour que ca puisse fonctionner ,j'ai éssayé de faire ceci :
def comptage(in_filename, out_filename):
    with open(in_filename, encoding='utf-8') as in_file:
        with open(out_filename, 'w', encoding='utf-8') as out_file:
            lineno = 1
            for line in in_file:
                nb_words = len(line.split())
                nb_chars = len(line)
                out_file.write(f"{lineno}:{nb_words}:{nb_chars}:{line}")
                lineno += 1
sortie = open('out_filename','w',encoding='utf-8')
entree = open('/home/chris/Bureau/Essai/essai.txt',encoding='utf-8')
comptage(entree,sortie)
Bonjour,
Essaye ceci :
def comptage(in_filename, out_filename):
    with open(in_filename, encoding='utf-8') as in_file:
        with open(out_filename, 'w', encoding='utf-8') as out_file:
            lineno = 1
            for line in in_file:
                nb_words = len(line.split())
                nb_chars = len(line)
                out_file.write(f"{lineno}:{nb_words}:{nb_chars}:{line}")
                lineno += 1
sortie = 'out_filename'
entree = '/home/chris/Bureau/Essai/essai.txt'
comptage(entree,sortie)
Merci . Il n'y a plus de message d'erreur mais il ne se passe rien non plus . Il y a quelque chose que je n'ai pas fait comme il faut ...
chris7522 #3 a écritIl y a quelque chose que je n'ai pas fait comme il faut
Il y a des chances…
$ cat script.py
import sys
entree=sys.argv[1]
sortie=sys.argv[2]

def comptage(in_filename, out_filename):
    with open(in_filename, encoding='utf-8') as in_file, open(out_filename, 'w', encoding='utf-8') as out_file:
            lineno = 1
            for line in in_file:
                nb_words = len(line.split())
                nb_chars = len(line)
#               out_file.write(f"{lineno}:{nb_words}:{nb_chars}:{line}")
                out_file.write("%s:%s:%s:%s"%(lineno,nb_words,nb_chars,line))
                lineno += 1

comptage(entree,sortie)
$ cat i
ligne 1   suite de la ligne 1
ligne 2   suite de la ligne 2
ligne 3   suite de la ligne 3
ligne 4   suite de la ligne 4
python3 script.py i o
$ cat o
1:7:30:ligne 1   suite de la ligne 1
2:7:30:ligne 2   suite de la ligne 2
3:7:30:ligne 3   suite de la ligne 3
4:7:30:ligne 4   suite de la ligne 4
Merci de ton aide .
Je crois que je vais poursuivre mon apprentissage , j'ai encore beaucoup a apprendre , car je pige pas tout . 🙂
Je voudrai quand meme savoir ce que signifie et ce que permet de faire sys.argv[ ] dans ton exemple ?
chris7522 a écritJe voudrai quand meme savoir ce que signifie et ce que permet de faire sys.argv[ ] dans ton exemple ?
Cela permet de lire les paramètres qui suivent le nom du script lors de l'appel. Ici les noms des fichiers d'entrée et de sortie, respectivement i et o.