Bibliothèque standard Python: première moitié (mémo d'apprentissage Python ⑧)

Interface du système d'exploitation

Fonctions qui interagissent avec le système d'exploitation

import os

os.getcwd() #Obtenir le répertoire actuel

os.system('mkdir today') #Exécution de la commande dans le shell du système

Le module shutil est utile pour gérer les fichiers et répertoires


import shutil

shutil.copyfile('data.db', 'archive.db')

shuti.move('/build/executables', 'installdir')

Caractère générique de fichier

Le module glob recherche dans le répertoire des caractères génériques et renvoie une liste de fichiers


import glob
glob.glob('*.py')
#.Une liste de fichiers se terminant par py est renvoyée

Arguments de ligne de commande

Les arguments passés lors de l'exécution de la commande de python sont stockés dans sys.argv

import sys
print(sys.argv)
#Obtenir la liste des arguments
#Le 0ème élément est le nom du fichier

Les autres modules qui gèrent les arguments incluent:

Redirection de sortie d'erreur et arrêt du programme

Utilisez le module sys stdin, stdout, stderr

stderr est utile pour afficher des messages même lorsque stdout est redirigé

Correspondance de modèle de chaîne

Les expressions régulières, etc. peuvent être implémentées en utilisant le module re


import re

print(re.findall(r'\bf[a-z]*', 'whitch foot or hand fell fastest'))

# ['foot', 'fell', 'fastest']

print(re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat'))

# cat in the hat

Math

module mathématique

import math

math.cos(math.pi / 4)
# 0.7071067811865476

math.log(1024, 2)
# 10.0

module aléatoire


import random

random.choice(['apple', 'pear', 'banana'])
#Choix aléatoire dans la liste
# 'apple'

random.sample(range(100), 10)
# range(100)Extrait 10 de(Pas de duplication)
# [48, 5, 42, 15, 23, 78, 55, 72, 39, 1]

random.random()
#Nombre à virgule flottante aléatoire
# 0.2785335302723758

random.randrange(6)
# range(6)Entier sélectionné au hasard parmi
# 0

module de statistiques - trouver des statistiques

import statistics

data = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5]

statistics.mean(data) #moyenne
# 1.6071428571428572

statistics.median(data) #Médian
# 1.25

statistics.variance(data) #Distribué
# 1.3720238095238095

Voir le projet SciPy pour d'autres modules numériques

https://www.scipy.org/

Accès à Internet

from urllib.request import urlopen

with urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl') as response:
    for line in response:
        line = line.decode('utf-8') #Décoder les données binaires en texte
        if 'EST' in line or 'EDT' in line: #Trouver l'heure normale de l'Est
            print(line)


import smtplib

server = smtplib.SMTP('localhost')
server.sendmail('[email protected]', '[email protected]',
    """To: [email protected]
    From: [email protected]

    Beware the Ideas of March.
    """
)

server.quit()

Date et l'heure


from datetime import date

now = date.today()

print(now)
# 2019-12-09

print(now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B."))
# 12-09-19. 09 Dec 2019 is a Monday on the 09 day of December.

birthday = date(1964, 7, 31)
age = now - birthday
print(age.days)
# 20219

Mesure du rendement

Mesurons la différence de performance lors de l'échange de variables


from timeit import Timer

time1 = Timer('t=a; a=b; b=t', 'a=1; b=2').timeit()
time2 = Timer('a,b = b,a', 'a=1; b=2').timeit()

print(time1)
# 0.020502762
print(time2)
# 0.018866841999999995

Les modules "profile" et "pstats" conviennent également pour mesurer de grands blocs de code.

gestion de la qualité

Écrivez le test lorsque vous écrivez la fonction et exécutez le test pendant le développement

Le module doctest scanne le module et valide les tests embarqués dans la docstring.

Le test répertorie les appels courants et leurs résultats dans docstring

def average(values):
    """Calculer la moyenne arithmétique à partir d'une liste de nombres
    
    >>> print(average([20, 30, 70]))
    40.0
    """
    return sum(values) / len(values)

import doctest

doctest.testmod()
#Valider automatiquement les tests embarqués


Le module ʻunittest` peut avoir un ensemble de tests plus complet dans un fichier séparé

import unittest
from doctest_sample import average


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()

Recommended Posts

Bibliothèque standard Python: première moitié (mémo d'apprentissage Python ⑧)
Bibliothèque standard Python: seconde moitié (mémo d'apprentissage Python ⑨)
Classe Python (mémo d'apprentissage Python ⑦)
Mémo d'étude Python & Machine Learning ②: Introduction de la bibliothèque
Gestion des exceptions Python (mémo d'apprentissage Python ⑥)
Syntaxe de contrôle Python, fonctions (mémo d'apprentissage Python ②)
Entrée / sortie avec Python (mémo d'apprentissage Python ⑤)
Mémo d'apprentissage de la planification des sections ~ par python ~
Mémo d'apprentissage "Scraping & Machine Learning avec Python"
(python) Principes de base du chaînage de la bibliothèque d'apprentissage en profondeur
Mémo Python
mémo python
Mémo Python
mémo python
apprentissage de python
Mémo Python
Mémo Python
Mémo d'étude Python & Machine Learning: Préparation de l'environnement
Numéros, chaînes, types de listes Python (mémo d'apprentissage Python ①)
[Mémo d'apprentissage] Bases de la classe par python
Structure et fonctionnement des données Python (mémo d'apprentissage Python ③)
[Python] Première analyse de données / apprentissage automatique (Kaggle)
Mémo d'étude Python & Machine Learning ③: Réseau neuronal
Mémo d'étude Python & Machine Learning ④: Machine Learning par rétro-propagation
Mémo d'étude Python & Machine Learning ⑥: Reconnaissance des nombres
Bibliothèque de messagerie Python 3.6
[Python] Mémo sur le dictionnaire
[Personal memo] julia --Utiliser la bibliothèque Python avec Julia en utilisant PyCall
Note d'étude LPIC201
Premier Python
[Python] Note d'apprentissage 1
Bibliothèque Python AST
Premier Python 3 ~ Première comparaison ~
mémo débutant python (9.2-10)
Notes d'apprentissage Python
Mémo d'apprentissage Django
Mémo d'étude Python & Machine Learning ⑤: Classification d'Ayame
mémo débutant python (9.1)
sortie d'apprentissage python
[Python] Entrée standard
Site d'apprentissage Python
★ Mémo ★ Python Iroha
Premier Python
Bibliothèque d'analyse de phrases / syntaxe Python (première enquête 2014.11, ajout partiel 2019.10)
Apprentissage en profondeur Python
Mémo opérateur Python 3
Inconnu de manière inattendue!? Fonction de bibliothèque standard Python groupby
Note sur la bibliothèque Python
apprentissage python (supplément)
Premier Python ~ Codage 2 ~
Essayez Juniper JUNOS PyEz (bibliothèque python) Note 1 ~ Présentation de PyEz ~
Apprentissage profond × Python
[Memo] Apprentissage automatique
[Mon mémo] python
Mémo de métaclasse Python3
[Python] Mémo de fond de carte
mémo d'apprentissage progate Python (mis à jour de temps en temps)
Mémo débutant Python (2)
notes d'apprentissage python
[Python] Mémo Numpy