Módulos

En Python un módulo es una colección de clases y funciones relacionadas las unas con las otras y es cualquier fichero con una funcionalidad específica cuyo nombre de fichero disponga de la extensión .py. Los módulos se pueden importar para ser usados posteriormente en cualquier parte del código con la instrucción import nombre_modulo en varias formas.

Para poner un ejemplo, suponiendo que exista un fichero llamado texto.txt en el que está incluida la siguiente frase:

Más claro no canta un gallo

Se construye una clase básica llamada Ficheros en la que uno de los métodos contará las palabras del fichero cuyo nombre se le pase como parámetro. El módulo encargado de ello será un archivo llamado ficheros.py que incluirá el siguiente código:

import os.path

class Ficheros:
    def sumapalabras( self, nombrefichero ):
        if os.path.isfile( nombrefichero):
            with open( nombrefichero) as fichero:
                contenido = fichero.read()
                print( len( contenido.split() ) )
        else:
            print( 'El fichero no existe' )

Tras esto, se crea el script que usará el módulo ficheros y se llamará test01.py usando import y el nombre del módulo que es el nombre del fichero de la clase sin la extensión .py.

import ficheros

objeto = ficheros.Ficheros()
objeto.sumapalabras(‘./texto.txt')

El resultado de ejecutar el script test01.py, es que se muestra en pantalla el número de palabras incluidas en texto.txt que en el ejemplo resulta ser seis.

python3 test01.py
6

Algo a observar es que el archivo se llama ficheros.py y la clase Ficheros, por lo que el importar y posteriormente instanciar la clase puede resultar un poco lioso, esto se puede solucionar de varias formas, podemos cambiar el nombre al fichero o a la clase, pero también se puede importar la clase con otro nombre usando as como en el siguiente ejemplo:

import ficheros as f
objeto = f.Ficheros()
objeto.sumapalabras('./texto.txt')

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *