GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing docs.python.org — 10. Brief tour of the standard library 10. Brief tour of the standard library¶10.1. Operating system interface¶El módulo >>> import os >>> os.getcwd() # Return the current working directory 'C:\\Python315' >>> os.chdir('/server/accesslogs') # Change current working directory >>> os.system('mkdir today') # Run the command mkdir in the system shell 0 Asegúrate de utilizar el estilo Las funciones integradas >>> import os >>> dir(os) <returns a list of all module functions> >>> help(os) <returns an extensive manual page created from the module's docstrings> For daily file and directory management tasks, the >>> import shutil >>> shutil.copyfile('data.db', 'archive.db') 'archive.db' >>> shutil.move('/build/executables', 'installdir') 'installdir' 10.2. File wildcards¶El módulo >>> import glob >>> glob.glob('*.py') ['primes.py', 'random.py', 'quote.py'] 10.3. Command-line arguments¶Common utility scripts often need to process command-line arguments. These
arguments are stored in the # File demo.py import sys print(sys.argv) Este es el resultado de ejecutar ['demo.py', 'one', 'two', 'three'] The import argparse parser = argparse.ArgumentParser( prog='top', description='Show top lines from each file') parser.add_argument('filenames', nargs='+') parser.add_argument('-l', '--lines', type=int, default=10) args = parser.parse_args() print(args) Cuando se ejecuta en la línea de comandos con 10.4. Error output redirection and program termination¶El módulo >>> sys.stderr.write('Warning, log file not found starting a new one\n') Warning, log file not found starting a new one La forma más directa de terminar un programa es usar 10.5. String pattern matching¶El módulo >>> import re >>> re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest') ['foot', 'fell', 'fastest'] >>> re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat') 'cat in the hat' Cuando sólo se necesitan funciones sencillas, se prefieren los métodos de cadenas porque son más fáciles de leer y depurar: >>> 'tea for too'.replace('too', 'two') 'tea for two' 10.6. Matemáticas¶The >>> import math >>> math.cos(math.pi / 4) 0.70710678118654757 >>> math.log(1024, 2) 10.0 El módulo >>> import random >>> random.choice(['apple', 'pear', 'banana']) 'apple' >>> random.sample(range(100), 10) # sampling without replacement [30, 83, 16, 4, 8, 81, 41, 50, 18, 33] >>> random.random() # random float from the interval [0.0, 1.0) 0.17970987693706186 >>> random.randrange(6) # random integer chosen from range(6) 4 El módulo >>> import statistics >>> data = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5] >>> statistics.mean(data) 1.6071428571428572 >>> statistics.median(data) 1.25 >>> statistics.variance(data) 1.3720238095238095 El proyecto SciPy <https://scipy.org> tiene muchos otros módulos para cálculos numéricos. 10.7. Internet access¶Hay varios módulos para acceder a Internet y procesar sus protocolos. Dos de los más simples son >>> from urllib.request import urlopen >>> with urlopen('https://docs.python.org/3/') as response: ... for line in response: ... line = line.decode() # Convert bytes to a str ... if 'updated' in line: ... print(line.rstrip()) # Remove trailing newline ... Last updated on Nov 11, 2025 (20:11 UTC). >>> import smtplib >>> server = smtplib.SMTP('localhost') >>> server.sendmail('[email protected]', '[email protected]', ... """To: [email protected] ... From: [email protected] ... ... Beware the Ides of March. ... """) >>> server.quit() (Nota que el segundo ejemplo necesita un servidor de correo corriendo en la máquina local) 10.8. Dates and times¶El módulo >>> # dates are easily constructed and formatted >>> import datetime as dt >>> now = dt.date.today() >>> now datetime.date(2003, 12, 2) >>> now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.") '12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.' >>> # dates support calendar arithmetic >>> birthday = dt.date(1964, 7, 31) >>> age = now - birthday >>> age.days 14368 10.9. Data compression¶Los módulos admiten directamente los formatos más comunes de archivo y compresión de datos, entre ellos : >>> import zlib >>> s = b'witch which has which witches wrist watch' >>> len(s) 41 >>> t = zlib.compress(s) >>> len(t) 37 >>> zlib.decompress(t) b'witch which has which witches wrist watch' >>> zlib.crc32(s) 226805979 10.10. Performance measurement¶Algunos usuarios de Python desarrollan un profundo interés en conocer el rendimiento relativo de las diferentes soluciones al mismo problema. Python provee una herramienta de medición que responde inmediatamente a esas preguntas. Por ejemplo, puede ser tentador usar la característica de empaquetado y desempaquetado de las tuplas en lugar de la solución tradicional para intercambiar argumentos. El módulo >>> from timeit import Timer >>> Timer('t=a; a=b; b=t', 'a=1; b=2').timeit() 0.57535828626024577 >>> Timer('a,b = b,a', 'a=1; b=2').timeit() 0.54962537085770791 En contraste con el fino nivel de medición del módulo 10.11. Quality control¶Una forma para desarrollar software de alta calidad consiste en escribir pruebas para cada función mientras se desarrolla y correr esas pruebas frecuentemente durante el proceso de desarrollo. El módulo def average(values): """Computes the arithmetic mean of a list of numbers. >>> print(average([20, 30, 70])) 40.0 """ return sum(values) / len(values) import doctest doctest.testmod() # automatically validate the embedded tests El módulo import unittest class TestStatisticalFunctions(unittest.TestCase): def test_average(self): self.assertEqual(average([20, 30, 70]), 40.0) self.assertEqual(round(average([1, 5, 7]), 1), 4.3) with self.assertRaises(ZeroDivisionError): average([]) with self.assertRaises(TypeError): average(20, 30, 70) unittest.main() # Calling from the command line invokes all tests 10.12. Batteries included¶Python tiene una filosofía de «pilas incluidas». Esto se ve mejor en las capacidades robustas y sofisticadas de sus paquetes más grandes. Por ejemplo:
© Derechos de autor 2001 Python Software Foundation.
Ésta página tiene la licencia Python Software Foundation Versión 2. Ejemplos, guías, y otro código en la documentación están bajo la licencia adicional Zero Clause BSD. Ver Historia y Licencia para más información. La Python Software Foundation es una corporación sin fines de lucro. Por favor dona. Última actualización en nov 12, 2026 (07:48 UTC). Encontraste un bug? Creado usando Sphinx9.1.1. |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |