Outils pour utilisateurs

Outils du site


issue151:python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révisionLes deux révisions suivantes
issue151:python [2019/12/07 07:03] d52frissue151:python [2019/12/07 09:04] auntiee
Ligne 1: Ligne 1:
 **Usually, I try to know what I'm going to write about a month or two before the actual article is due to the FCM Staff. However, this month I have to admit, my mind refused to settle and concentrate on picking a topic. It wasn't that I couldn't come up with anything at all. It was that there were so many topics to choose from and I had a difficult time coming up with the substance for any one of them. The deadline started approaching closer and closer and still I couldn't get my mind to settle on anything in particular. A good friend suggested an article on the Google blog API and how to integrate that into Python, and I did spend some time working on that, but the muse just wouldn't settle in and help me out. I quickly became frustrated with that, just like everything that I tried to bring to life.** **Usually, I try to know what I'm going to write about a month or two before the actual article is due to the FCM Staff. However, this month I have to admit, my mind refused to settle and concentrate on picking a topic. It wasn't that I couldn't come up with anything at all. It was that there were so many topics to choose from and I had a difficult time coming up with the substance for any one of them. The deadline started approaching closer and closer and still I couldn't get my mind to settle on anything in particular. A good friend suggested an article on the Google blog API and how to integrate that into Python, and I did spend some time working on that, but the muse just wouldn't settle in and help me out. I quickly became frustrated with that, just like everything that I tried to bring to life.**
  
-En général, j'essaie de savoir ce que je vais écrire environ un mois ou deux avant que l'article véritable soit à livrer à l'équipe du FCM. Cependant, ce mois-ci, je dois admettre que mon esprit refusait de se concentrer sur le choix du sujet. Ce n'était pas parce que je ne trouvais rien du tout. C'était parce que j'avais tellement de sujets entre lesquels choisir et que j'avais de la difficulté à leur donner du contenu. La date limite commençait à approcher de plus en plus et je n'arrivais toujours pas à décider quoi que ce soit. Un de mes bons amis m'a suggéré un article sur l'API du blog de Google et la manière de l'intégrer dans Python ; j'ai passé un peu de temps à travailler dessus, mais mon inspiration refusait de se concentrer pour m'aider. Ça m'a rapidement contrarié, comme pour toutes ces choses auxquelles j'essaie de donner vie.+En général, j'essaie de prévoir ce que je vais écrire environ un mois ou deux avant que l'article véritable soit à livrer à l'équipe du FCM. Cependant, ce mois-ci, je dois admettre que mon esprit refusait de se concentrer sur le choix du sujet. Ce n'était pas parce que je ne trouvais rien du tout. C'était parce que j'avais tellement de sujets entre lesquels choisir et que j'avais de la difficulté à leur donner du contenu. La date limite commençait à approcher de plus en plus et je n'arrivais toujours pas à décider quoi que ce soit. Un de mes bons amis m'a suggéré un article sur l'API du blog de Google et la manière de l'intégrer dans Python ; j'ai passé un peu de temps à travailler dessus, mais mon inspiration refusait de se concentrer pour m'aider. Ça m'a rapidement contrarié, comme pour toutes ces choses auxquelles j'essaie de donner vie.
  
 **My mind was spinning when I went to bed last night, and I ended up not really sleeping well. I woke up before my alarm went off and as hard as I tried, I couldn't get back to sleep. Even more frustrated, I started my day, made my coffee, checked my email, tuned into the network news on the television, and settled in for another day of potential disappointment because I still didn't have a viable topic for this month's article. **My mind was spinning when I went to bed last night, and I ended up not really sleeping well. I woke up before my alarm went off and as hard as I tried, I couldn't get back to sleep. Even more frustrated, I started my day, made my coffee, checked my email, tuned into the network news on the television, and settled in for another day of potential disappointment because I still didn't have a viable topic for this month's article.
Ligne 7: Ligne 7:
 I went through all the mental list of all the things that needed to be added to my todo list for today. Many of them were normal mundane things like decide what I was going to make for dinner tonight, was I going to deal with trying to exercise today, and so on and so on. One of the things that needed to be added to my list was to work on testing the latest development release of Page. Some of you know that I help Don Rozenberg test out new versions of Page before he releases them into the "wild". I really enjoy doing the testing for him, since it's a challenge for me to try to figure out what happened when something goes wrong. Lately however, I seem to be forgetting a few items when I go back and test older functionality, just to make sure that nothing got broken in the updating process.** I went through all the mental list of all the things that needed to be added to my todo list for today. Many of them were normal mundane things like decide what I was going to make for dinner tonight, was I going to deal with trying to exercise today, and so on and so on. One of the things that needed to be added to my list was to work on testing the latest development release of Page. Some of you know that I help Don Rozenberg test out new versions of Page before he releases them into the "wild". I really enjoy doing the testing for him, since it's a challenge for me to try to figure out what happened when something goes wrong. Lately however, I seem to be forgetting a few items when I go back and test older functionality, just to make sure that nothing got broken in the updating process.**
  
-Les idées se bousculaient dans ma tête quand je suis allé me coucher hier soir et j'ai assez mal dormi, en fait. Je me suis réveillé avant que mon réveil sonne et j'ai eu beau tout essayer, je n'ai pas réussi à me rendormir. Encore plus contrarié, j'ai commencé ma journée, fait mon café, vérifié mes mails, regardé les nouvelles à la télévision et je me suis préparé pour une journée supplémentaire de déception car je n'avais pas de sujet viable pour l'article de ce mois.+Les idées se bousculaient dans ma tête quand je suis allé me coucher hier soir et j'ai assez mal dormi, en fait. Je me suis réveillé avant que mon réveil ne sonne et j'ai eu beau tout essayer, je n'ai pas réussi à me rendormir. Encore plus contrarié, j'ai commencé ma journée, fait mon café, vérifié mes mails, regardé les nouvelles à la télévision et je me suis préparé pour une journée supplémentaire de déceptioncar je n'avais pas de sujet viable pour l'article.
  
-J'ai repassé en revue dans ma tête la liste de tout que je devais ajouter dans mon catalogue des choses à faire de la journée. Nombreuses étaient les choses normales et prosaïques comme de décider ce que j'allais faire pour le dîner, qu'est-ce que j'allais essayer de faire aujourd'hui, et ainsi de suite. Une des choses que j'avais besoin d'ajouter à ma liste était de travailler sur les tests d'une nouvelle publication de développement de Page. Certains d'entre vous savent que j'aide Don Rozenberg à tester les nouvelles versions de Page avant qu'il ne les diffuse. J'aime vraiment faire des tests pour lui, car c'est une véritable épreuve pour moi d'essayer d'imaginer ce qui se passe quand quelque chose va de travers. Cependant, dernièrement, il m'a semblé que je négligeais quelques points quand je suis revenu en arrière pour tester une fonctionnalité plus ancienne, juste pour m'assurer que rien n'était cassé dans le processus de mise à jour.+J'ai repassé en revue dans ma tête la liste de tout ce que je devais ajouter dans mon catalogue des choses à faire de la journée. Nombreuses étaient les choses normales et prosaïques comme de décider ce que j'allais faire pour le dîner, qu'est-ce que j'allais essayer de faire comme exercices physiques aujourd'hui, et ainsi de suite. L'une des choses que je devais ajouter à ma liste était de travailler sur les tests d'une nouvelle publication de développement de Page. Certains d'entre vous savent que j'aide Don Rozenberg à tester les nouvelles versions de Page avant qu'il ne les diffuse. J'aime vraiment faire ces tests, car essayer d'imaginer ce qui se passe quand quelque chose va de travers est un véritable défi. Cependant, dernièrement, il m'a semblé que je négligeais quelques points quand je suis revenu en arrière pour tester une fonctionnalité plus ancienne, juste pour m'assurer que rien n'était cassé dans le processus de mise à jour.
  
 **My mind started wandering away from the todo list, and on to trying to think of a way to keep from missing the steps for older functionality, making my efficiency better for myself, Don and the users of Page. My mind started to cloud with a misty fog, and I started to get that feeling of the beginnings of an idea started to coalesce in that great empty space I refer to as my brain. Something to automate the testing process of new Page candidates! YES! But wait. How in the world would I do that? **My mind started wandering away from the todo list, and on to trying to think of a way to keep from missing the steps for older functionality, making my efficiency better for myself, Don and the users of Page. My mind started to cloud with a misty fog, and I started to get that feeling of the beginnings of an idea started to coalesce in that great empty space I refer to as my brain. Something to automate the testing process of new Page candidates! YES! But wait. How in the world would I do that?
Ligne 15: Ligne 15:
 I quickly put down the coffee cup and grabbed my mouse. I called up a web search for a python library to automate mouse movements, clicks, double-clicks, and the like. I knew there had to be something that would be quick to learn and would be something that I could use as the basis for an article. Sure enough, I found it.** I quickly put down the coffee cup and grabbed my mouse. I called up a web search for a python library to automate mouse movements, clicks, double-clicks, and the like. I knew there had to be something that would be quick to learn and would be something that I could use as the basis for an article. Sure enough, I found it.**
  
-Mon esprit commençait à s'évader de ma liste « à-faire » pour essayer de penser à une façon de ne pas oublier les étapes de la fonctionnalité ancienne, améliorant mon efficience. celle de Don et des utilisateurs de Page. Mon esprit partit bien haut dans un brouillard dense et j'ai commencé à sentir les prémices d'une idée qui commençait à prendre forme dans ce grand espace vide que j'appelle mon cerveau. Quelque chose pour automatiser le processus de test des nouvelles pré-versions de Page ! OUI ! Mais, attendez. Comment pourrais-je jamais faire ça ?+Mon esprit commençait à s'évader de ma liste « à-faire » pour essayer de penser à une façon de ne pas oublier les étapes de la fonctionnalité ancienne, améliorant mon éfficacité non seulement pour moi, mais pour Don et les utilisateurs de Page. Mon esprit partit bien haut dans un brouillard dense et j'ai commencé à sentir les prémices d'une idée qui commençait à prendre forme dans ce grand espace vide que j'appelle mon cerveau. Quelque chose pour automatiser le processus de test des nouvelles pré-versions de Page ! OUI ! Mais, attendez. Comment pourrais-je faire cela ?
  
 J'ai rapidement bu ma tasse de café et attrapé ma souris. J'ai lancé un recherche sur le Web pour une bibliothèque en Python pour l'automatisation des mouvements de la souris, les clics, double-clics, et consorts. Je savais qu'il devait y avoir quelque chose qui serait rapide à apprendre et que je pourrais utiliser comme base pour mon article. Et bien sûr, je l'ai trouvé. J'ai rapidement bu ma tasse de café et attrapé ma souris. J'ai lancé un recherche sur le Web pour une bibliothèque en Python pour l'automatisation des mouvements de la souris, les clics, double-clics, et consorts. Je savais qu'il devait y avoir quelque chose qui serait rapide à apprendre et que je pourrais utiliser comme base pour mon article. Et bien sûr, je l'ai trouvé.
Ligne 21: Ligne 21:
 **Amongst all the other links appeared a link to a chapter of a book by one of my all time favorite authors, Al Sweigart. I've reviewed a few of his books for Full Circle magazine. He's written some of the best books on Python, and has a few on the internet that you can read totally free on-line. One of them is a book called "Automate The Boring Stuff With Python". It's published by No Starch Press, and the link to the book is https://automatetheboringstuff.com/#toc. By the way, he has a new Second Edition of the book coming out just about any time. You REALLY should buy this book! Anyway, chapter 18 of the book is titled "Controlling the Keyboard and Mouse with GUI Automation" (https://automatetheboringstuff.com/chapter18/). It deals with exactly what I was looking for.** **Amongst all the other links appeared a link to a chapter of a book by one of my all time favorite authors, Al Sweigart. I've reviewed a few of his books for Full Circle magazine. He's written some of the best books on Python, and has a few on the internet that you can read totally free on-line. One of them is a book called "Automate The Boring Stuff With Python". It's published by No Starch Press, and the link to the book is https://automatetheboringstuff.com/#toc. By the way, he has a new Second Edition of the book coming out just about any time. You REALLY should buy this book! Anyway, chapter 18 of the book is titled "Controlling the Keyboard and Mouse with GUI Automation" (https://automatetheboringstuff.com/chapter18/). It deals with exactly what I was looking for.**
  
-Parmi tous les autres liens, est apparu un lien vers un chapitre d'un livre d'un de mes auteurs favoris de tous les temps, Al Sweigart. J'avais fait la critique de quelques-uns de ses livres pour le Full Circle Magazine. Il a écrit certains des meilleurs livres sur Python et quelques-uns d'entre eux peuvent être lus entièrement en ligne gratuitement. Parmi eux, un livre appelé  « Automate The Boring Stuff With Python » (Automatiser les choses fatidieuses avec Python). Il est publié par No Starch Press, et le lien vers le livre est https://automatetheboringstuff.com/#toc. D'ailleurs, une nouvelle Seconde Édition du livre va sortir à tout moment. Vous devriez VRAIMENT acheter ce livre ! De tout façon, le chapitre 18 du livre est intitulé « Controlling the Keyboard and Mouse with GUI Automation » (Piloter le clavier et la souris en automatisant l'interface graphique de l'utilisateur (GUI)) - https://automatetheboringstuff.com/chapter18/). Il parle exactement de ce que nous cherchons.+Parmi tous les autres liens, est apparu un lien vers un chapitre d'un livre d'un de mes auteurs favoris de tous les temps, Al Sweigart. J'ai fait la critique de quelques-uns de ses livres pour le Full Circle Magazine. Il a écrit certains des meilleurs livres sur Python et quelques-uns d'entre eux peuvent être lus en ligne gratuitement. Parmi eux, un livre appelé  « Automate The Boring Stuff With Python » (Automatiser les choses fatidieuses avec Python). Il est publié par No Starch Press, et le lien vers le livre est https://automatetheboringstuff.com/#toc. D'ailleurs, une nouvelle Seconde Édition du livre va sortir à tout moment. Vous devriez VRAIMENT acheter ce livre ! De toute façon, le chapitre 18 du livre est intitulé « Controlling the Keyboard and Mouse with GUI Automation » (Piloter le clavier et la souris en automatisant l'interface graphique de l'utilisateur (GUI)) - https://automatetheboringstuff.com/chapter18/). Il parle exactement de ce que nous cherchons.
  
 **I'm going to, as I often do, distill the essence of Mr. Sweigart's chapter down and show you how to use the information that I gleaned from it. We'll be using a library called 'pyautogui'. While the name might seem a bit misleading at first glance, if you read the chapter you'll see that it perfectly fits what it actually can do. Let's get started. **I'm going to, as I often do, distill the essence of Mr. Sweigart's chapter down and show you how to use the information that I gleaned from it. We'll be using a library called 'pyautogui'. While the name might seem a bit misleading at first glance, if you read the chapter you'll see that it perfectly fits what it actually can do. Let's get started.
Ligne 29: Ligne 29:
 pip3 install python3-xlib** pip3 install python3-xlib**
  
-Je vais, comme je le fais souvent, vous distiller l'essentiel du chapitre de M. Sweigart et vous montrer comment utiliser les informations que j'en tire. Nous utiliserons la bibliothèque appelée « pyautogui ». Alors que le nom pourrait sembler un peu trompeur à première vue, si vous lisez le chapitre, vous verrez qu'il correspond parfaitement à ce qu'il peut vraiment faire. Allons-y.+Je vais, comme je le fais souvent, vous distiller l'essentiel du chapitre de M. Sweigart et vous montrer comment utiliser les informations que j'en tire. Nous utiliserons la bibliothèque appelée « pyautogui ». Alors que le nom pourrait sembler un peu trompeur à première vue, si vous lisez le chapitre, vous verrez qu'il correspond parfaitement à ce qu'il peut faire. Allons-y.
  
 La première chose que nous devons faire est de l'installer ainsi que quelques dépendances. Je vais vous donner les indications telles qu'elles apparaissent dans le chapitre, et seulement celles pour Linux ; si vous voulez installer la bibliothèque sur Windows ou Mac, vous pourrez trouvez les instructions dans l'article. Ainsi, comme première étape, nous avons besoin d'utiliser pip pour installer la bibliothèque python3-xlib. La première chose que nous devons faire est de l'installer ainsi que quelques dépendances. Je vais vous donner les indications telles qu'elles apparaissent dans le chapitre, et seulement celles pour Linux ; si vous voulez installer la bibliothèque sur Windows ou Mac, vous pourrez trouvez les instructions dans l'article. Ainsi, comme première étape, nous avons besoin d'utiliser pip pour installer la bibliothèque python3-xlib.
Ligne 59: Ligne 59:
 sudo apt-get install scrot python3-tk python3-dev sudo apt-get install scrot python3-tk python3-dev
  
-Scrot est un programme que pyautogui utilise pour prendre des copies d'écran. Vous le verrez à l'œuvre un peu tard dans cet article.+Scrot est un programme qu'utilise pyautogui pour prendre des copies d'écran. Vous le verrez à l'œuvre un peu tard dans cet article.
  
 Enfin, vous pouvez installer pyautogui en utilisant pip... Enfin, vous pouvez installer pyautogui en utilisant pip...
Ligne 91: Ligne 91:
 Screen width: 1920 and height 1080** Screen width: 1920 and height 1080**
  
-Maintenant que pyautogui est installée, comme on le dit aux États-Unis, « kick the tires and see what this puppy can do » (Je sais que c'est difficile à traduire dans d'autres langues, excusez-moi)(trad. approx., //Merci d'avance AE // =)  ). Évidemment, nous voudrions utiliser le programme pour déplacer le curseur de la souris et voir ce qui se passe. Cependant, en premier, nous regarderons ce que dit PyAutoGui sur la taille de notre écran. Bien que vous puissiez connaître ce que sont ces valeurs, assurons-nous que ce que nous savons colle avec ce que la bibliothèque pense et ajustons nos estimations en conséquence.+Maintenant que pyautogui est installée, voyons voir ce qu'elle peut faire, ou, comme on le dit aux États-Unis, « kick the tires and see what this puppy can do ». Évidemment, nous voudrions utiliser le programme pour déplacer le curseur de la souris et voir ce qui se passe. Cependant, en premier, nous regarderons ce que dit PyAutoGui sur la taille de notre écran. Bien que nous puissions connaître ce que sont ces valeurs, assurons-nous que ce que nous savons colle avec ce que la bibliothèque pense et ajustons nos estimations en conséquence.
  
 Dans le shell Python, saisissez Dans le shell Python, saisissez
issue151/python.txt · Dernière modification : 2019/12/07 16:05 de andre_domenech