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¶Le module >>> import os >>> os.getcwd() # Return the current working directory 'C:\\Python316' >>> os.chdir('/server/accesslogs') # Change current working directory >>> os.system('mkdir today') # Run the command mkdir in the system shell 0 Veillez bien à utiliser Les primitives >>> 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¶Le module >>> 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) Here is the output from running ['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) Lorsqu'il est exécuté avec la ligne de commande 10.4. Error output redirection and program termination¶Le module >>> sys.stderr.write('Warning, log file not found starting a new one\n') Warning, log file not found starting a new one Le moyen le plus direct de terminer un script est d'utiliser 10.5. String pattern matching¶Le module >>> 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' Lorsque les opérations sont simples, il est préférable d'utiliser les méthodes des chaînes. Elles sont plus lisibles et plus faciles à déboguer : >>> 'tea for too'.replace('too', 'two') 'tea for two' 10.6. Mathématiques¶The >>> import math >>> math.cos(math.pi / 4) 0.70710678118654757 >>> math.log(1024, 2) 10.0 Le module >>> 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 Le module >>> 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 Le projet SciPy <https://scipy.org> contient beaucoup d'autres modules dédiés aux calculs numériques. 10.7. Internet access¶Il existe beaucoup de modules permettant d'accéder à internet et gérer les protocoles réseaux. Les deux plus simples sont >>> 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() (Notez que le deuxième exemple a besoin d'un serveur mail tournant localement.) 10.8. Dates and times¶Le module >>> # 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¶Les formats d'archivage et de compression les plus communs sont directement gérés par les modules >>> 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¶Certains utilisateurs de Python sont très intéressés par les performances de différentes approches d'un même problème. Python propose un outil de mesure répondant simplement à ces questions. Par exemple, pour échanger deux variables, il peut être tentant d'utiliser l'empaquetage et le dépaquetage de n-uplets plutôt que la méthode traditionnelle. Le module >>> 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 opposition à 10.11. Quality control¶Une approche possible pour développer des applications de très bonne qualité est d'écrire des tests pour chaque fonction au fur et à mesure de son développement, puis d'exécuter ces tests fréquemment lors du processus de développement. Le module 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 Le module 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 adopte le principe des "piles fournies". Vous pouvez le constater au travers des fonctionnalités évoluées et solides fournies par ses plus gros paquets. Par exemple :
© Copyright 2001 Python Software Foundation.
La licence de cette page est la Python Software Foundation License Version 2. La licence des exemples, recettes, et autres morceaux de code se trouvant dans la documentation est la Zero Clause BSD License. Pour plus d'informations, consultez Histoire et licence. La Python Software Foundation est une association à but non lucratif. Elle vit de vos dons. Dernière mise à jour : nov. 12, 2026 (05:04 UTC). Un bogue ? Crée par Sphinx 9.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. |