Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Biblioteca estándar Módulos os, sys, time Recomendamos el uso de pydoc desde la línea de comandos para acceder a la documentación (docstrings) de los mismos. Mostrar la documentación del módulo math: $ pydoc math Listar los módulos disponibles: $ pydoc modules Mostrar la documentación de la función dir: $ pydoc dir Help on built-in function dir in module __builtin__: dir(...) dir([object]) -> list of strings If called without an argument, return the names in the current scope. Else, return an alphabetized list of names comprising (some of) the attributes of the given object, and of attributes reachable from it. If the object supplies a method named __dir__, it will be used; otherwise the default dir() logic is used and returns: for a module object: the module's attributes. for a class object: its attributes, and recursively the attributes of its bases. for any other object: its attributes, its class's attributes, and recursively the attributes of its class's base classes. A continuación, se relacionan algunas funciones de los módulos os, sys, time. import os, sys, time os.access(ruta, modo-acceso) # devuelve si se puede acceder a un archivo o directorio os.getcwd() # devuelve el directorio de trabajo os.chdir('/dir1/dir2') # cambia directorio trabajo os.chmod(path, mode) # cambia permisos a un archivo os.chown(path, uid, gid) # cambia propietario de un archivo os.chroot(path) # cambia al directorio de trabajo raíz os.cpu_count() # número de CPUs del sistema os.curdir # directorio actual os.pardir # directorio padre os.ctermid() # nombre del archivo del terminal os.devnull # ruta del dispositivo nulo os.environ.iteritems() # diccionario con variables de entorno y valor os.getuid() # devuelve id usuario real del proceso actual (Unix) os.getgid() # devuelve id grupo real del proceso actual (Unix) os.geteuid() # devuelve id usuario efectivo del proceso actual (Unix) os.getegid() # devuelve id grupo efectivo del proceso actual (Unix) os.getgroups() # devuelve lista de grupos suplementarios relacionados con el proceso actual (Unix) os.getpid() # devuelve id del proceso actual os.getenv(key, default=None) # obtiene valor de variable de entorno os.getlogin() # devuelve nombre usuario actual listado = os.listdir('/home') # lista contenido de directorio os.mkdir(path [,mode=511]) # crea subdirectorio os.makedirs(path[, modo]) # crea directorios recursivamente os.path.abspath(path) # devuelve path absoluta de un archivo o directorio os.path.abspath(__file__) # devuelve ruta completa del fichero actual os.path.basename(path) # devuelve directorio base os.path.dirname(path) # devuelve directorio del archivo o directorio os.path.exists(path) # comprueba si existe fichero o directorio os.path.getatime(path) # devuelve fecha/hora del último acceso a un archivo o directorio os.path.getsize(path) # obtiene el tamaño de un archivo o directorio os.path.isabs(path) # devuelve si la ruta es absoluta os.path.isfile(path) # devuelve si la ruta es un archivo os.path.isdir(path) # devuelve si la ruta es un directorio os.path.islink(path) # devuelve si la ruta es un enlace simbólico os.path.ismount(path) # devuelve si la ruta es un punto de montaje os.putenv(key, value) # cambia/inserta variable de entorno os.remove(path) # borra un archivo os.removedirs(path) # elimina directorios recursivamente os.rename(old, new) # renombrar un archivo o directorio os.renames(old, new) # Renombrado recursivo. os.rmdir(path) # borrar un subdirectorio os.link(src, dst) # crea enlace duro os.symlink(path, nombre-destino) # crea enlace simbólico os.readlink(path) # cadena que representa ruta a la que apunta enlace simbólico os.stat(path) # Estado de archivo o de descriptor de archivo. os.sep # separador utilizado en una ruta (path) os.extsep # separador de extensión os.linesep # separador de líneas os.pathsep # separador usado para expresar varias rutas os.system('ls') # ejecuta un comando externo os.uname() # muestra Información del sistema. Tiene 5 atributos os.uname().sysname # muestra nombre del sistema. Otros atributos: nodename, release, version y machine os.unsetenv(key) # borra una variable de entorno os.urandom(n) # genera cadenas aleatorias de n bytes os.wait() # espera fin de un proceso hijo y devuelve tupla con estado pid y salida (unix) sys.argv # devuelve la lista formada por programa y lista de argumentos agregados al ejecutar sys.executable # devuelve ruta del ejecutable del intérprete sys.exit() # fuerza salida del intérprete Python sys.getdefaultencoding() # devuelve codificación de caracteres por defecto sys.getfilesystemencoding() # devuelve codificación de caracteres que se utiliza para convertir los nombres de archivos unicode en nombres de archivos del sistema sys.path # devuelve paths de Python sys.path.append('ruta') # añade una nueva ruta al path sys.modules # muestra información de los módulos sys.version # obtiene versión de Python sys.copyright # obtiene información de copyright sys.platform # obtiene sistema operativo del sistema sys.version_info # obtiene información de versión sys.version_info.major >= 3 # obtiene versión major time.time() # hora actual en segundos (coma flotante) time.ctime() # convierte de segundos a cadena time.localtime() # muestra hora local como tupla time.asctime()) # convierte fecha y hora locales a cadena time.sleep() # retarda ejecución un número de segundos El módulo random El módulo random de la librería estándar de Python incluye un conjunto de funciones que permiten obtener de distintos modos números aleatorios o, para ser rigurosos, pseudoaleatorios. Las funciones a las que hacemos referencia, cada vez que son invocadas, devuelven un valor de una secuencia de números predeterminada. Esta secuencia tiene un periodo bastante largo, es decir, es necesario obtener muchos números antes de que se vuelva a reproducir la misma secuencia. De ahí, el tratamiento de pseudo (o falso), aunque la utilidad que nos ofrezca sea equivalente al de los números aleatorios. Las aplicaciones que tienen los números aleatorios o pseudoaleatorios son muchas: juegos de azar, animaciones de videojuegos, simulaciones, análisis de datos, método de Monte Carlo, etc. randint() La función randint() devuelve un número entero incluido entre los valores indicados. Los valores de los límites inferior y superior también pueden aparecer entre los valores devueltos. import random regalos = ['sartén', 'jamón', 'mp4', 'muñeca', 'tv', 'patín', 'balón', 'reloj', 'bicicleta', 'anillo'] for sorteo in range(5): regalo = regalos[random.randint(0, 9)] print('Sorteo', sorteo + 1, ':', regalo) randrange() La función randrange() devuelve enteros que van desde un valor inicial a otro final separados entre sí un número de valores determinados. Esta separación (o paso) se utiliza en primer lugar con el valor inicial para calcular el siguiente valor y los sucesivos hasta llegar al valor final o al más cercano posible. print('\nValores posibles: 3, 6, 9, 12, 15') for i in range(25): print(random.randrange(3, 16, 3), end=' ') random() La función random() devuelve un número float entre 0 y 1 for numero in range(3): print(random.random(), end=' ') uniform() La función uniform() devuelve un número float incluido entre los valores indicados. for numero in range(3): print(random.uniform(100, 105), end=' ') seed() Cuando interese obtener varias veces la misma secuencia de números pseudoaleatoria se puede utilizar la función seed() que fija mediante una "semilla" el mismo comienzo en cada secuencia, permitiendo con ello obtener series con los mismos valores. La semilla en este caso se fija con un valor numérico (0 en este caso) pero también se puede utilizar una cadena o una unidad de tiempo obtenida con la función time() del módulo time; o incluso puede expresarse con cualquier objeto"hashable" de Python. regalos = ['sartén', 'jamón', 'mp4', 'muñeca', 'tv', 'patín', 'balón', 'reloj', 'bicicleta', 'anillo'] for serie in range(2): print('\nserie:', serie + 1) random.seed(0) for sorteo in range(5): regalo = regalos[random.randint(0, 9)] print('Sorteo', sorteo + 1, ':', regalo) choice() La función choice() se utiliza para seleccionar elementos al azar de una lista. transporte = ['bici', 'moto', 'coche', 'tren', 'avión'] print('Hoy viajaré en:', random.choice(transporte)) suffle() La función shuffle() 'mezcla' o cambia aleatoriamente el orden de los elementos de una lista antes de realizar la selección de alguno de ellos. Esta mezcla recuerda en el caso de los juegos de cartas la acción de barajar un número de veces antes de repartir o seleccionar cartas. lista = ['rojo', 'verde', 'amarillo'] random.shuffle(lista) print('mezcla1', lista) random.shuffle(lista) print('mezcla2', lista) print(lista[random.randint(0,2)]) La clase Random La clase Random permite instanciar varios generadores de números aleatorios "trabajando" cada uno con su propia secuencia sin interferir en el resto, o bien, si se inician con la misma semilla generando la misma secuencia. print('Inicializa dos generadores:') serie1 = random.Random() serie2 = random.Random() for num in range(3): print(serie1.random(), serie2.random()) print('Se utiliza la misma semilla:') semilla = 'Python' serie1 = random.Random(semilla) serie2 = random.Random(semilla) for num in range(3): print(serie1.random(), serie2.random()) Módulos os, sys, time El módulo random randint() randrange() random() uniform() seed() choice() suffle() La clase Random
Compartir