Connexion
Connexion

Comment utiliser time.sleep() en Python

Comment utiliser time.sleep() en Python
Hostman Team
Rédacteur technique
Programmation Python
14.10.2025
Reading time: 9 min

Il arrive qu’un programme doive faire une pause : attendre le chargement de données, laisser à l’utilisateur le temps de saisir une information ou réduire la charge du système. L’une des façons les plus simples d’y parvenir en Python consiste à utiliser la fonction time.sleep(), qui suspend l’exécution du programme pendant un intervalle donné.

Dans cet article, nous allons voir comment fonctionne time.sleep() en Python, ses particularités et ses alternatives, ainsi que les erreurs possibles.Nous expliquerons aussi quand l’utiliser dans les programmes multithread et asynchrones, et quand il vaut mieux préférer asyncio.sleep() ou d’autres mécanismes d’attente.

Qu’est-ce que la fonction sleep() en Python ?

La fonction sleep() a été ajoutée à la bibliothèque standard de Python afin de simplifier la création de pauses dans le code. Elle fait partie du module time et s’appelle via time.sleep(), ce qui permet d’interrompre temporairement l’exécution du programme pendant un certain nombre de secondes.

Dans la pratique, sleep() est utile pour insérer des pauses dans des environnements de test, entre des requêtes API ou entre l’envoi de messages. Cependant, elle ne doit pas être confondue avec les outils de synchronisation de threads ou les mécanismes de temporisation précise : pour cela, d’autres outils sont plus adaptés.

Comment fonctionne time.sleep()

La fonction time.sleep() met en pause le thread actuel pendant le nombre de secondes indiqué. Dans un programme multithread, les autres threads continuent de s’exécuter, tandis que celui où time.sleep() a été appelée reste « gelé » pendant cet intervalle.

Il est important de noter que time.sleep() bloque l’exécution du code à l’endroit où elle est appelée, retardant ainsi toutes les opérations suivantes. Une mauvaise utilisation peut donc entraîner une baisse de performance ou même figer l’interface utilisateur dans les applications de bureau.

Quand utiliser time.sleep()

La fonction time.sleep() est le plus souvent utilisée pour les tests ou le débogage, lorsqu’une courte pause est nécessaire — par exemple, pour vérifier la réponse d’une API ou attendre celle d’un serveur. Elle est également employée pour exécuter des scripts étape par étape, donnant à l’utilisateur le temps de lire ou de saisir des données.

Dans les démonstrations, tutoriels ou prototypes, time.sleep() sert à simuler des processus longs ; et dans les interactions avec des services externes, elle permet d’éviter des blocages dus à des requêtes trop fréquentes. Cependant, ce n’est pas le seul moyen de ralentir l’exécution du code — voyons maintenant quelques alternatives.

Utilisation de time.sleep() en Python

L’utilisation de time.sleep() en Python est simple, même pour les débutants. Néanmoins, certaines subtilités peuvent influencer les performances et la facilité de débogage.

Syntaxe de base

Pour utiliser time.sleep(), commencez par importer le module time :

import time
time.sleep(5)

Dans cet exemple, le programme « dort » pendant 5 secondes. Le paramètre transmis peut être un entier ou un nombre décimal, permettant ainsi des pauses de fractions de seconde.

Syntaxe :

time.sleep(seconds)

La fonction ne renvoie aucune valeur. Elle suspend simplement le thread actuel pendant la durée indiquée.

Exemple : retarder l’exécution du code

Voici un petit script qui affiche trois messages espacés de deux secondes :

import time
print("First message")
time.sleep(2)
print("Second message")
time.sleep(2)
print("Third message")

Lors de l’exécution, l’utilisateur verra une pause de 2 secondes entre chaque message. C’est ainsi que time.sleep(2) crée un délai en Python.

Paramètres de time.sleep()

La fonction accepte un seul paramètre, mais celui-ci peut être un entier ou un flottant. Cela offre une grande flexibilité pour définir des pauses.

Valeurs en secondes

La plupart du temps, on utilise un entier représentant le nombre de secondes :

time.sleep(10)

Le script s’interrompt ici pendant 10 secondes, idéal pour espacer les requêtes ou créer une longue pause.

Fractions de seconde (millisecondes)

Parfois, une pause plus courte suffit. Il est alors possible de passer un nombre à virgule:

time.sleep(0.5)

Cela crée une pause d’une demi-seconde. Cependant, à cause des limitations du système d’exploitation et de l’horloge interne de Python, la durée réelle peut légèrement dépasser la valeur indiquée. Dans les systèmes temps réel, il est préférable d’utiliser des outils de synchronisation plus précis.

Alternatives à time.sleep() en Python

Bien que time.sleep() soit le moyen le plus populaire et le plus simple pour insérer des pauses, d’autres méthodes sont parfois plus adaptées, notamment pour gérer des événements externes ou des exécutions concurrentes.

1. Utiliser input() pour marquer une pause

La manière la plus simple de suspendre un programme est d’utiliser input(). Cette fonction bloque l’exécution jusqu’à ce que l’utilisateur appuie sur Entrée ou saisisse une donnée.

print("Press Enter to continue...")
input()
print("Resuming program execution")

Ce n’est pas une pause chronométrée, mais une attente d’action utilisateur. Elle est utile pour le débogage ou dans des scripts interactifs, mais rarement dans des processus automatisés.

2. Utiliser threading.Event()

Dans un programme multithread, on peut utiliser des objets de synchronisation comme threading.Event(), qui bloquent un thread jusqu’à ce qu’un signal soit reçu.

import threading
event = threading.Event()

def worker():
    print("Starting work in thread")
    event.wait()
    print("Event received, resuming work")

thread = threading.Thread(target=worker)
thread.start()

import time
time.sleep(3)
event.set()

Ici, le thread reste bloqué jusqu’à l’appel de event.set(). Cette approche permet un contrôle plus souple : le thread peut être réveillé à tout moment, sans attendre la fin du délai.

3. Utiliser asyncio.sleep() dans un programme asynchrone

En programmation asynchrone (module asyncio), on utilise asyncio.sleep(). Contrairement à time.sleep(), cette fonction ne bloque pas tout le thread, mais uniquement la coroutine actuelle, permettant ainsi au boucle d’événements de continuer à exécuter d’autres tâches.

import asyncio

async def main():
    print("Start async work")
    await asyncio.sleep(2)
    print("2 seconds passed, resuming")

asyncio.run(main())

C’est particulièrement utile lorsque plusieurs fonctions asynchrones s’exécutent en parallèle. Si vous utilisiez time.sleep() dans ce contexte, cela bloquerait toute la boucle d’événements.

Problèmes courants avec time.sleep()

Même si time.sleep() est simple à utiliser, une mauvaise utilisation peut provoquer des blocages inattendus. Il est donc essentiel de comprendre comment elle affecte le déroulement du programme.

Blocage du thread principal

La fonction bloque le thread dans lequel elle est appelée. Dans une application à interface graphique (par exemple Tkinter ou PyQt), cela peut geler l’interface.

💡 Conseil :
N’utilisez time.sleep() que dans des threads secondaires ou remplacez-la par asyncio.sleep() pour éviter le blocage.
Dans les interfaces graphiques, préférez des minuteries comme QTimer ou la méthode after().

Utilisation dans du code multithread ou asynchrone

Dans un programme multithread, time.sleep() peut être appelée indépendamment dans chaque thread, mais elle ne libère pas automatiquement le Global Interpreter Lock (GIL). L’exécution d’autres threads dépend du planificateur du système d’exploitation.

Dans du code asynchrone, évitez d’utiliser time.sleep() dans une boucle d’événements (asyncio.run()), car elle la bloquerait entièrement.
Utilisez plutôt asyncio.sleep(), qui rend le contrôle au planificateur et laisse d’autres coroutines s’exécuter.

Exemple pratique : interroger une API périodiquement

Imaginons que vous écriviez un script pour interroger régulièrement une API, mais que ses règles imposent au moins 30 secondes entre chaque requête.

Solution avec time.sleep() :

import time
def poll_api():
    print("Making API request...")
def main():
    while True:
        poll_api()
        time.sleep(30)
if __name__ == "__main__":
    main()

Après chaque requête, le script se met en pause pendant 30 secondes, respectant ainsi les limites de fréquence.

Alternative asynchrone :

import asyncio
async def poll_api():
    print("Making API request...")
async def main():
    while True:
        await poll_api()
        await asyncio.sleep(30)
if __name__ == "__main__":
    asyncio.run(main())

Cette version ne bloque pas le programme : d’autres tâches peuvent s’exécuter en parallèle dans le même environnement asynchrone. C’est une approche plus flexible et évolutive.

Conclusion

Gérer les pauses et délais est un aspect important du développement Python.
time.sleep() est la méthode la plus simple et la plus directe, mais le choix entre time.sleep(), asyncio.sleep() et d’autres approches dépend de l’architecture du projet.

Recommandations clés :

  • Utilisez time.sleep() pour des pauses courtes dans les tests, entre les requêtes ou dans des démonstrations.

  • Ne bloquez pas le thread principal d’une application graphique.

  • Dans le code asynchrone, remplacez time.sleep() par asyncio.sleep().

  • Dans les programmes multithread, rappelez-vous que seul le thread courant est suspendu.

  • Pour attendre un événement ou une action utilisateur, utilisez threading.Event() ou input().
Programmation Python
14.10.2025
Reading time: 9 min

Similaire

Programmation Python

Options de ligne de commande et analyse des arguments avec argparse en Python

Les interfaces en ligne de commande (CLI) sont parmi les moyens les plus rapides et les plus efficaces d’interagir avec un logiciel. Elles permettent d’exécuter des commandes directement, ce qui se traduit par une exécution plus rapide et des fonctionnalités enrichies. Les développeurs créent souvent des CLI en Python pour diverses applications, utilitaires et scripts d’automatisation, afin de traiter dynamiquement les entrées utilisateur. C’est ici qu’intervient le module argparse de Python. Le module argparse simplifie la gestion des entrées en ligne de commande et permet aux développeurs de créer des outils interactifs et conviviaux. Faisant partie de la bibliothèque standard, il permet de définir, traiter et valider les entrées sans nécessiter de logique complexe. Cet article présente les concepts essentiels, des exemples utiles et des fonctionnalités avancées du module argparse pour vous aider à créer rapidement des outils CLI fiables. Comment utiliser argparse en Python pour les interfaces en ligne de commande Étape 1 : Importer le module Importez le module dans votre script : import argparse Cela permet l’analyse des arguments transmis à un script Python via la ligne de commande. Étape 2 : Créer un objet ArgumentParser La classe ArgumentParser constitue l’élément central de l’API du module argparse. Commencez par créer une instance : parser = argparse.ArgumentParser(description="A Hostman tutorial on Python argparse.") Ici : description explique ce que fait le programme et s’affiche lorsqu’on utilise --help. Étape 3 : Ajouter des entrées et options Définissez les paramètres acceptés par votre programme à l’aide de add_argument() : parser.add_argument('filename', type=str, help="Name of the file to process") parser.add_argument('--verbose', action='store_true', help="Enable verbose mode") Explications : filename est obligatoire. --verbose est optionnel et active le mode verbeux. Étape 4 : Analyser les entrées utilisateur Traitez les arguments fournis : args = parser.parse_args() Les valeurs extraites sont accessibles sous forme d’attributs de l’objet args. Étape 5 : Utiliser les données traitées Exemple : print(f"File to process: {args.filename}") if args.verbose:     print("Verbose mode enabled") else:     print("Verbose mode disabled") Exemples d’utilisation de la CLI Traitement d’un fichier sans mode verbeux python3 file.py example.txt Traitement d’un fichier avec mode verbeux python3 file.py example.txt --verbose Afficher l’aide python3 file.py --help Exemples courants d’utilisation de argparse Exemple 1 : Ajouter des valeurs par défaut Les arguments optionnels peuvent disposer de valeurs par défaut. Ici, --timeout adopte une valeur par défaut de 30 secondes : import argparse parser = argparse.ArgumentParser(description="Demonstrating default argument values.") parser.add_argument('--timeout', type=int, default=30, help="Timeout in seconds (default: 30)") args = parser.parse_args() print(f"Timeout value: {args.timeout} seconds") Explications Importation du module Création de l’objet ArgumentParser Ajout de --timeout avec type entier et valeur par défaut Analyse avec parse_args() Cas 1 : valeur par défaut python file.py Cas 2 : valeur personnalisée python file.py --timeout 60 Exemple 2 : Utiliser choices Le paramètre choices limite un argument à une liste de valeurs valides : parser.add_argument('--mode', choices=['basic', 'advanced'], help="Choose the mode of operation") Cas 1 : valeur valide python3 file.py --mode basic Cas 2 : aucun argument python3 file.py Cas 3 : valeur non valide python3 file.py --mode intermediate Exemple 3 : Gérer plusieurs valeurs Le paramètre nargs='+' permet d’accepter plusieurs valeurs pour un même argument : parser.add_argument('--numbers', nargs='+', type=int, help="List of numbers to process") Cas 1 : plusieurs valeurs python3 file.py --numbers 10 20 30 Cas 2 : une seule valeur python3 file.py --numbers 5 Cas 3 : aucune valeur python3 file.py Cas 4 : entrée non valide python3 file.py --numbers 10 abc 20 Exemple 4 : Arguments optionnels obligatoires Bien que les arguments commençant par -- soient optionnels, ils peuvent être rendus obligatoires avec required=True : parser.add_argument('--config', required=True, help="Path to the configuration file") Cas 1 : entrée valide python3 file.py --config settings.json Cas 2 : absence de l’argument obligatoire python3 file.py Fonctionnalités avancées Flags booléens parser.add_argument('--debug', action='store_true', help="Enable debugging mode") Regrouper des arguments liés group = parser.add_argument_group('File Operations') group.add_argument('--input', type=str, help="Input file") group.add_argument('--output', type=str, help="Output file") Arguments mutuellement exclusifs group = parser.add_mutually_exclusive_group() group.add_argument('--json', action='store_true', help="Output in JSON format") group.add_argument('--xml', action='store_true', help="Output in XML format") Conclusion Le module argparse simplifie la création de CLI robustes pour traiter les arguments de ligne de commande en Python. Des paramètres de base aux options avancées comme choices et nargs, les développeurs peuvent créer des outils puissants, fiables et faciles à utiliser. Donner des noms clairs aux arguments et rédiger de bonnes descriptions contribue également à rendre les scripts plus lisibles et plus simples à maintenir.
25 November 2025 · 5 min to read
Programmation Python

Comment installer pip sur Windows

pip est un utilitaire qui rend l’installation et la gestion des paquets Python simples et rapides. Que vous soyez débutant en Python ou développeur expérimenté, avoir cet outil sur votre ordinateur Windows change véritablement la donne. Il facilite la configuration des frameworks et bibliothèques essentiels à vos besoins de développement. L’automatisation de la gestion des paquets avec pip vous fait gagner du temps et réduit les complications liées aux installations manuelles. Suivez ce guide pour apprendre à configurer pip et à gérer vos paquets Python sans difficulté. Processus d’installation de pip pour Windows Voici les étapes pour installer pip sur un ordinateur Windows. Étape 1 : Vérifier l’installation Avant de commencer, assurez-vous que Python fonctionne sur votre appareil. Pour cela, ouvrez l’invite de commandes et exécutez : python --version   Si Python n’est pas installé sur votre système, téléchargez-le depuis le site officiel. Étape 2 : Télécharger get-pip.py Le package d’installation standard de Python inclut automatiquement pip. Cependant, si pip a été supprimé accidentellement, téléchargez le script get-pip.py. Vous avez deux options : visiter la page web pip.py, ou utiliser la commande curl pour une installation rapide : curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py Remarque : vous pouvez également réinstaller Python pour récupérer pip. Toutefois, cela peut parfois provoquer des conflits avec d’autres dépendances ou paramètres. Ce script laisse votre installation Python existante inchangée. Étape 3 : Exécuter get-pip.py Accédez à l’emplacement du script via l’invite de commandes et exécutez : python get-pip.py Cela installera pip sur votre appareil sans problème. Étape 4 : Vérifier l’installation de pip Vérifiez que l’installation a réussi en exécutant : pip --version Cette commande confirme que pip est correctement installé sur le système. Étape 5 : Ajouter pip au PATH du système Si la commande ne fonctionne pas, mettez à jour la variable PATH de votre système en suivant ces instructions pour y inclure pip : Faites un clic droit sur « Ce PC » ou « Ordinateur », puis sélectionnez « Propriétés ». Choisissez « Paramètres système avancés ». Sélectionnez « Variables d’environnement ». Dans la section Variables système, trouvez la variable « Path » et cliquez sur « Modifier ». Ajoutez le répertoire Scripts de Python à votre PATH, par exemple : C:\Python39\Scripts. Méthodes alternatives pour installer pip sur Windows Voici d’autres moyens d’installer pip facilement sur Windows. Via le module intégré ensurepip Depuis Python 3.4, il existe un module intégré très pratique nommé ensurepip. Grâce à cet outil, l’installation de pip est simplifiée, sans avoir besoin du script get-pip.py. Étape 1 : Exécuter ensurepip Saisissez la commande suivante pour installer pip : python -m ensurepip --default-pip Étape 2 : Vérifier l’installation de pip Vérifiez la version de pip avec : pip --version Méthode via l’installateur Python Assurez-vous que la case pip est cochée lors de l’installation de Python. Voici comment faire : Étape 1 : Télécharger l’installateur Ouvrez votre navigateur préféré, rendez-vous sur le site officiel de Python et téléchargez la dernière version du programme d’installation. Étape 2 : Lancer l’installateur Exécutez le fichier téléchargé et veillez à sélectionner l’option « Add Python to PATH » pendant l’installation. Étape 3 : Installer pip Pendant le processus d’installation, cochez l’option « Install pip ». Étape 4 : Vérifier que pip est installé Une fois l’installation terminée, vérifiez pip avec : pip --version Ajuster la version de pip : mise à jour ou rétrogradation Vous pouvez ajuster la version de pip selon vos besoins, en la mettant à jour ou en revenant à une version antérieure. Voici comment faire : Mettre à jour pip Pour mettre à jour pip, exécutez : python -m pip install --upgrade pip Rétrograder pip Pour revenir à une version précédente de pip, utilisez : python -m pip install pip==<version> Remplacez <version> par le numéro de version souhaité (ex : 21.0). Résolution des problèmes d’installation de pip : commandes essentielles Voici les problèmes d’installation de pip les plus courants et leurs solutions : Problème 1 : « pip » n’est pas reconnu comme une commande interne ou externe Solution : Cela signifie que le chemin de pip n’est pas défini dans le PATH du système. Suivez les instructions de l’« Étape 5 » pour corriger le problème. Problème 2 : Accès refusé Solution : Exécutez l’invite de commandes en tant qu’administrateur en cliquant avec le bouton droit sur l’icône et en choisissant « Exécuter en tant qu’administrateur ». Ensuite, relancez les commandes. Problème 3 : Dépendances manquantes Solution : Il arrive que des erreurs surviennent à cause de dépendances manquantes. Pour résoudre cela, installez manuellement les dépendances nécessaires avec pip. Exemple : pip install package_name Remplacez package_name par la dépendance correspondante. Utilisation d’environnements virtuels L’utilisation d’environnements virtuels permet de garder les dépendances séparées et d’éviter les conflits. Voici comment utiliser un environnement virtuel avec pip : Créer un environnement virtuel python -m venv env_name Remplacez env_name par le nom souhaité pour votre environnement. Activer l’environnement virtuel env_name\Scripts\activate Commandes pip de base Voici quelques commandes essentielles pour utiliser pip : Installer un paquet pip install package_name Remplacez package_name par le nom du paquet à installer. Désinstaller un paquet pip uninstall package_name Afficher les paquets installés pip list Afficher les informations d’un paquet pip show package_name Bonnes pratiques pour la gestion des paquets Utilisez des environnements virtuels pour gérer efficacement les dépendances dans plusieurs projets. Vérifiez et mettez régulièrement à jour vos paquets pour garantir leur bon fonctionnement. Créez des fichiers requirements pour faciliter la gestion des dépendances de vos projets. Sécuriser l’installation de pip Assurer la sécurité des paquets gérés par pip est essentiel. Voici quelques conseils pour sécuriser votre environnement : Maintenez l’isolation des projets pour éviter les conflits et garantir des installations sûres. Vérifiez la fiabilité et l’authenticité des sources avant d’installer des paquets. Utilisez toujours les dépôts officiels et consultez les avis disponibles. Mettez régulièrement à jour pip et vos paquets pour bénéficier des derniers correctifs de sécurité. Analysez périodiquement vos dépendances à la recherche de vulnérabilités connues. Des outils comme pip-audit peuvent vous aider à les identifier et à les corriger. Respectez les bonnes pratiques de codage sécurisé et évitez les paquets obsolètes ou non sécurisés. Intégration de pip avec les IDE pip peut être facilement intégré à différents environnements de développement intégrés (IDE), améliorant ainsi votre productivité : VS Code : Utilisez le terminal intégré pour exécuter directement les commandes pip et gérer vos paquets depuis l’éditeur. PyCharm : Simplifiez la gestion des paquets en configurant pip via l’interpréteur du projet. Cela facilite l’installation et la gestion de paquets adaptés aux besoins spécifiques de votre projet. Jupyter Notebook : Utilisez des commandes magiques dans l’interface du notebook pour installer des paquets directement. Cela offre une expérience fluide et intégrée pour gérer les dépendances pendant que vous travaillez sur vos notebooks interactifs.  Conclusion Windows propose plusieurs méthodes pour installer pip, selon vos préférences et vos besoins. Que vous choisissiez le script .py, le module intégré ensurepip, ou l’activation de pip lors de l’installation initiale, ces approches garantissent une configuration correcte de pip sur votre système. N’oubliez pas de maintenir pip à jour pour assurer la sécurité et l’efficacité de votre environnement Python. Vérifiez régulièrement les mises à jour et gardez pip à jour. De plus, sur notre Application Platform, vous pouvez trouver des applications Python comme Celery, Django, FastAPI et Flask.
24 October 2025 · 8 min to read

Avez-vous des questions,
des commentaires ou
des préoccupations ?

Nos professionnels sont disponibles pour vous aider à tout moment,
que vous ayez besoin d'aide ou que vous ne sachiez pas par où commencer.
Envoyez-nous un e-mail
Hostman's Support