Outils pour utilisateurs

Outils du site


issue71: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évision
Révision précédente
issue71:python [2013/05/31 18:21] – [8] auntieeissue71:python [2013/06/07 14:32] (Version actuelle) – [15] auntiee
Ligne 110: Ligne 110:
 As you can see, we are importing the os, sys and apsw libraries. We've used them all before. We are also importing the re library to support Regular Expressions. We'll touch on that quickly this time, but more in the next article.** As you can see, we are importing the os, sys and apsw libraries. We've used them all before. We are also importing the re library to support Regular Expressions. We'll touch on that quickly this time, but more in the next article.**
  
-Nous allons maintenant commencer avec la première partie de notre projet. Créez un fichier appelé "cherche_fichiers_tv.py​​". Veillez à bien l'enregistrer quand nous avons fini ce mois-ci, parce que nous allons repartir de là le mois prochain.+Nous allons maintenant commencer avec la première partie de notre projet. Créez un fichier appelé "cherche_fichiers_tv.py​​". Veillez à bien l'enregistrer quand nous aurons fini ce mois-ci, parce que nous allons repartir de là le mois prochain.
  
 Commençons avec nos importations : Commençons avec nos importations :
Ligne 202: Ligne 202:
 Ensuite (au milieu à droite), nous vérifions si le fichier est dans la base de données. Si c'est le cas, il ne faut pas le dupliquer. Nous vérifions simplement le nom du fichier. Nous pourrions aller plus loin et vérifier que le chemin est aussi le même, mais pour cette fois, c'est assez. Ensuite (au milieu à droite), nous vérifions si le fichier est dans la base de données. Si c'est le cas, il ne faut pas le dupliquer. Nous vérifions simplement le nom du fichier. Nous pourrions aller plus loin et vérifier que le chemin est aussi le même, mais pour cette fois, c'est assez.
  
-Si tout fonctionne correctement, la réponse de la requête ne devrait être que 1 ou 0. Si c'est 0, alors il n'est pas présent et nous allons écrire les informations dans la base de données. Sinon, nous passons à la suite. Remarquez la commande try/except au-dessus et en-dessous. Si quelque chose va mal, comme un caractère que la base n'aime pas, cela empêchera le programme de s'arrêter. Cependant, nous enregistrerons l'erreur afin que nous puissions vérifier plus tard.+Si tout fonctionne correctement, la réponse de la requête ne devrait être que 1 ou 0. Si c'est 0, alors il n'est pas présent et nous allons écrire l'information dans la base de données. Sinon, nous passons à la suite. Remarquez la commande try/except au-dessus et en-dessous. Si quelque chose va mal, comme un caractère que la base n'aime pas, cela empêchera le programme de s'arrêter. Cependant, nous enregistrerons l'erreur afin de pouvoir vérifier plus tard.
  
 ====== 11 ====== ====== 11 ======
Ligne 239: Ligne 239:
         showname = resp.group(1)**         showname = resp.group(1)**
  
-La partie re.search du code vient de la bibliothèque re. Elle utilise un modèle de chaîneet, dans ce cas, le nom du fichier que l'on veut analyser. re.M|re.I sont des paramètres qui disent que nous voulons utiliser une recherche de type multiligne (re.M) indépendante de la casse (re.I). Comme je l'ai dit précédemment, nous parlerons plus des expressions régulières le mois prochain, car notre routine correspondra à un seul type de chaîne de série/épisode. En ce qui concerne le modèle de recherche, nous recherchons : « .S » suivi de deux chiffres, suivis par « E » puis deux autres chiffres, puis un point. Si notre nom de fichier ressemblait à « tvshow.S01E03.avi », cela correspondrait. Cependant, certaines personnes codent leurs émissions ainsi : «tvshow.s01e03.avi », ou « tvshow.103.avi », ce qui rend la recherche plus difficile. Nous allons modifier cette routine le mois prochain pour couvrir la majorité des cas. Le « r' » permet qu'une chaîne brute soit utilisée pour la recherche.+La partie re.search du code vient de la bibliothèque re. Elle utilise un modèle de chaîne et, dans ce cas, le nom du fichier que l'on veut analyser. re.M|re.I sont des paramètres qui disent que nous voulons utiliser une recherche de type multiligne (re.M) indépendante de la casse (re.I). Comme je l'ai dit précédemment, nous parlerons plus des expressions régulières le mois prochain, car notre routine correspondra à un seul type de chaîne de série/épisode. En ce qui concerne le modèle de recherche, nous recherchons : « .S » suivi de deux chiffres, suivis par « E » puis deux autres chiffres, puis un point. Si notre nom de fichier ressemblait à « tvshow.S01E03.avi », cela correspondrait. Cependant, certaines personnes codent leurs émissions ainsi : «tvshow.s01e03.avi », ou « tvshow.103.avi », ce qui rend la recherche plus difficile. Nous allons modifier cette routine le mois prochain pour couvrir la majorité des cas. Le « r' » permet qu'une chaîne brute soit utilisée pour la recherche.
  
-Ensuite, la recherche retourne un objet correspondant que nous pouvons regarder. « rep » est une réponse qui est vide si aucune correspondance n'est trouvée, et, dans ce cas, deux morceaux d'information retournés. Le premier va nous donner les caractères jusqu'à la chaîne recherchée, et le second contiendra cette chaîne. Ainsi, dans le cas ci-dessus, group(1) serait « tvshow »et le second groupe serait « tvshow.S01E03. ». Ceci est spécifié par les parenthèses de la recherche « (.*) » et « (\.*) ».+Ensuite, la recherche retourne un objet correspondant que nous pouvons regarder. « rep » est une réponse qui est vide si aucune correspondance n'est trouvée, et, dans ce cas, deux morceaux d'information retournés. Le premier va nous donner les caractères jusqu'à la chaîne recherchée, et le second contiendra cette chaîne. Ainsi, dans le cas ci-dessus, group(1) serait « tvshow » et le second groupe serait « tvshow.S01E03. ». Ceci est spécifié par les parenthèses de la recherche « (.*) » et « (\.*) ».
  
-    si rep:+    si rep :
         nomEmission = rep.group(1)         nomEmission = rep.group(1)
  
Ligne 265: Ligne 265:
         episode = se[4:6]         episode = se[4:6]
  
-Ensuite, nous remplaçons tous les points de nomEmission par un espace pour les rendre plus « lisibles par l'utilisateur ».+Ensuite, nous remplaçons tous les points de nomEmission par une espacepour les rendre plus « lisibles par l'utilisateur ».
  
          nomEmission = nomEmission.replace("."," ")          nomEmission = nomEmission.replace("."," ")
Ligne 281: Ligne 281:
         return False,ret**         return False,ret**
  
-Nous créons une liste contenant le nom de l'émission, la saison et l'épisode, et la retournons avec le booléen True pour dire les choses se sont bien passées.+Nous créons une liste contenant le nom de l'émission, la saison et l'épisode, et la retournons avec le booléen True pour dire que les choses se sont bien passées.
  
         ret = [nomEmission,saison,episode]         ret = [nomEmission,saison,episode]
Ligne 313: Ligne 313:
 See you soon.** See you soon.**
  
-Voilà tout le code. Maintenant, regardons à quoi le résultat devrait ressembler. En supposant que votre structure de fichier est exactement comme la mienne, une partie de l'affichage devrait ressembler à ceci...+Voilà tout le code. Maintenant, regardons à quoi le résultat devrait ressembler. En supposant que votre structure de fichier est exactement comme la mienne, une partie de l'affichage devrait ressembler à ceci :
  
 Saison 02 Episode 04 Saison 02 Episode 04
Ligne 329: Ligne 329:
 Comme toujours, l'intégralité du code est disponible sur PasteBin.com à http://pastebin.com/p25nwCZM Comme toujours, l'intégralité du code est disponible sur PasteBin.com à http://pastebin.com/p25nwCZM
  
-La prochaine fois, nous traiterons un peu plus les formats de saison/épisodeet ferons d'autres choses pour étoffer notre programme.+La prochaine fois, nous traiterons un peu plus les formats de saison/épisode et ferons d'autres choses pour étoffer notre programme.
  
 À bientôt. À bientôt.
  
issue71/python.1370017283.txt.gz · Dernière modification : 2013/05/31 18:21 de auntiee