web-dev-qa-db-fra.com

Comment simuler la frappe au clavier avec python

L'idée est simple. Disons que je dois obtenir une somme de texte pré-écrite, à partir d'un fichier texte, à afficher à l'écran à l'aide du clavier pour le taper. Cela diffère du simple affichage de la sortie texte au format texte, il faut que le clavier soit comme si quelqu'un le tapait.

Toutes les idées me seraient très utiles.

3
YouBob Brutegeek

Apparemment, tapez du texte à une vitesse arbitraire

Puisque vous voulez que le texte soit dactylographié, vous voudriez probablement que les caractères n'apparaissent pas trop vite.

Vous pouvez utiliser le code ci-dessous pour ouvrir un fichier texte et apparemment le "taper" n'importe où.

#!/usr/bin/env python3
import subprocess
import time
import sys
# open the textfile
text = open(sys.argv[1]).read().strip()
for ch in text:
    # type out the text
    subprocess.call(["xdotool", "type", ch])
    # increase or decrease the time below to type slower or faster
    time.sleep(0.1)

Comment utiliser

  1. Vous aurez besoin de xdotool pour être installé

    Sudo apt-get install xdotool
    
  2. Copiez le script dans un fichier vide, enregistrez-le sous le nom type_out.py

  3. Exécutez-le avec le fichier texte comme argument:

    python3 /path/to/type_out.py <textfile>
    

Au cas où vous voudriez taper dans quelque chose, vous voudrez peut-être ajouter une petite pause avant de le lancer, afin de l'empêcher de commencer à taper tant que vous n'êtes pas encore prêt ...

C'est ça!

2
Jacob Vlijm