In [17]:
texte = u"""Ceci est un texte multiligne avec
des accents. Peu importe la longueur des lignes ou le nombre de ligne Python supportera
sans problèmes les caractères exotiques :
-कामसूत्र
+過労死
"""
In [18]:
def longueur(texte):
""" Retourne un tuple qui correspond au nombre lignes puis au
nombre de mots et au nombre de caractères dans le texte
"""
compteur = 0
for line in texte.split('\n'):
compteur += len(line.split(" "))
return texte.count('\n'), compteur, len(texte)
In [19]:
longueur(texte)
Out[19]:
In [20]:
def lireFichier(chemin):
""" Retourne un texte à partir d'un fichier
"""
with open(chemin, 'r') as fichier:
texte = fichier.read();
fichier.flush()
return texte
In [21]:
longueur(lireFichier('/etc/bash.bashrc'))
Out[21]:
In [22]:
def longueur(texte):
""" Retourne un tuple qui correspond au nombre lignes puis au
nombre de mots et au nombre de caractères dans le texte
Nous ne comptons plus les espaces consécutifs.
"""
compteur = 0
for line in texte.split('\n'):
for word in line.split(" "):
if len(word) > 0:
compteur = compteur + 1
return texte.count('\n'), compteur, len(texte)
In [23]:
longueur(lireFichier('/etc/bash.bashrc'))
Out[23]:
In [24]:
def recupURL(url):
""" Retourne un texte à partir d'une URL donnée
"""
from urllib.request import URLopener
urlopen = URLopener()
with urlopen.open(url) as data:
bytes = data.read()
return bytes.decode('utf-8')
In [25]:
longueur(recupURL('http://encolpe.degoute.free.fr'))
Out[25]:
In [26]:
def recupURL(url):
""" Retourne un texte à partir d'une URL donnée
Nettoyage du texte avec BeautifulSoup
"""
from urllib.request import URLopener
from bs4 import BeautifulSoup
urlopen = URLopener()
with urlopen.open(url) as data:
bytes = data.read()
soup = BeautifulSoup(bytes.decode('utf-8'))
return soup.get_text()
In [27]:
longueur(recupURL('http://encolpe.degoute.free.fr'))
Out[27]: