issue108:c_c
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| issue108:c_c [2016/05/07 13:47] – erlevo | issue108:c_c [2016/05/09 12:05] (Version actuelle) – auntiee | ||
|---|---|---|---|
| Ligne 9: | Ligne 9: | ||
| This script isn’t intended to be used as-is. You can easily adjust it to generate lists/ | This script isn’t intended to be used as-is. You can easily adjust it to generate lists/ | ||
| - | Il y a quelques mois, on m'a demandé de créer une base données JSON pour l' | + | Il y a quelques mois, on m'a demandé de créer une base données JSON pour l' |
| Le script. | Le script. | ||
| Ligne 16: | Ligne 16: | ||
| - | Mais… Je n'ai pas vos articles ! | + | Mais... je n'ai pas vos articles ! |
| Le script n'est pas fait pour être utilisé tel quel. Il peut être facilement modifié pour générer une liste/base de données de fichiers à partir de leur nom. C'est ce que je vais traiter dans cet article. | Le script n'est pas fait pour être utilisé tel quel. Il peut être facilement modifié pour générer une liste/base de données de fichiers à partir de leur nom. C'est ce que je vais traiter dans cet article. | ||
| Ligne 30: | Ligne 30: | ||
| De quoi aurai-je besoin ? | De quoi aurai-je besoin ? | ||
| - | Les scripts ont été testés dans Python 3.5. Des versions 3 plus anciennes devraient fonctionner sans problème. Si vous utilisez Python 2, vous devrez corriger le code en fonction des messages d' | + | Les scripts ont été testés dans Python 3.5. Des versions 3, plus anciennes, devraient fonctionner sans problème. Si vous utilisez Python 2, vous devrez corriger le code en fonction des messages d' |
| - | J'ai lié ma version du script avec Drive – l' | + | J'ai lié ma version du script avec Drive, l' |
| - | D' | + | Par ailleurs, les autres importations sont nécessaires ainsi que les bibliothèques standards. |
| Ligne 57: | Ligne 57: | ||
| Que dois-je changer ? | Que dois-je changer ? | ||
| - | Les changements suivants sont obligatoires et doivent être ajustés à votre système. Les changements optionnels se trouvent dans la prochaine | + | Les changements suivants sont obligatoires et doivent être ajustés à votre système. Les changements optionnels se trouvent dans la section |
| + | |||
| + | Il faudra éditer la ligne 9 : il s'agit du fichier de destination (txtFile) pour la liste temporaire de tous les articles. | ||
| + | |||
| + | Vous devrez également éditer la ligne 13 et modifier la liste pour y indiquer les chemins que vous voulez inclure dans votre base de données. Il s' | ||
| - | Il faudra éditer la ligne 9 – il s'agit du fichier de destination (txtFile) pour la liste temporaire de tous les articles. | ||
| - | Vous devrez également éditer la ligne 13 et modifier la liste pour y indiquer les chemins que vous voulez inclure dans votre base de données. Il s' | ||
| Si vous ne séparez pas les informations concernant vos fichiers avec des « - », il faudra modifier la ligne 70. | Si vous ne séparez pas les informations concernant vos fichiers avec des « - », il faudra modifier la ligne 70. | ||
| Ligne 67: | Ligne 69: | ||
| La ligne 10 donne le chemin du fichier JSON. Il s'agit par défaut de fcm-database.json dans le dossier courant. | La ligne 10 donne le chemin du fichier JSON. Il s'agit par défaut de fcm-database.json dans le dossier courant. | ||
| - | La ligne 16 contient un dictionnaire où est stockée la date du numéro 100 (August, 2015 ndt : août 2015). C'est important pour les calculs dans dateFind. On ne l'a pas intégrée dans la fonction pour pouvoir la changer plus facilement. | + | La ligne 16 contient un dictionnaire où est stockée la date du numéro 100 (August, 2015 [Ndt : août 2015]). C'est important pour les calculs dans dateFind. On ne l'a pas intégrée dans la fonction pour pouvoir la changer plus facilement. |
| - | La ligne 17 contient un dictionnaire vide qui est utilisé pour chaque valeur. Il aurait pu être intégré dans une méthode, mais je l'ai laissé ici pour montrer comment il fonctionne (et assurer qu'il y a -1 élément à effacer). | + | La ligne 17 contient un dictionnaire vide qui est utilisé pour chaque valeur. Il aurait pu être intégré dans une méthode, mais je l'ai laissé ici pour montrer comment il fonctionne (et m'assurer qu'il y a -1 élément à effacer). |
| **How Does It Work? | **How Does It Work? | ||
| Ligne 83: | Ligne 85: | ||
| Comment cela fonctionne-t-il ? | Comment cela fonctionne-t-il ? | ||
| - | Les 25 premières lignes sont essentiellement des déclarations de variables qui ont besoin d' | + | Les 25 premières lignes sont essentiellement des déclarations de variables qui ont besoin d' |
| Fonction : dateFind | Fonction : dateFind | ||
| - | Cette fonction a été créée pour calculer le mois et l' | + | Cette fonction a été créée pour calculer le mois et l' |
| - | On peut aussi simplement multiplier la différence par 32 – bien qu' | + | On peut aussi simplement multiplier la différence par 32 - bien qu' |
| **Function: createArticleList | **Function: createArticleList | ||
| Ligne 102: | Ligne 103: | ||
| The list is then printed into a temporary file (which is practical for debugging, or if you just want to see quickly how many files there are). The file is then closed, and the function returns True.** | The list is then printed into a temporary file (which is practical for debugging, or if you just want to see quickly how many files there are). The file is then closed, and the function returns True.** | ||
| - | Fonction : createArticleList. | + | Fonction : createArticleList |
| - | Cette fonction utilise os.listdir et quelques recherches regexp pour ne tenir compte que de mes articles. Puisque le titre de mes articles a toujours le format FCM100 | + | Cette fonction utilise os.listdir et quelques recherches regexp pour ne tenir compte que de mes articles. Puisque le titre de mes articles a toujours le format FCM100 |
| - | La ligne 59 | + | La ligne 55 supprime toutes les extensions .odt de la liste (puisque les fichiers de Google Drive n'ont pas d' |
| - | La ligne 57 vérifie qu'il n'y a pas de doublon | + | La ligne 57 vérifie qu'il n'y a pas de doublon, puisqu' |
| La liste est ensuite écrite dans un fichier temporaire (ce qui est pratique pour trouver les erreurs ou voir rapidement le nombre de fichiers). Le fichier est ensuite fermé et la fonction renvoie True (vrai). | La liste est ensuite écrite dans un fichier temporaire (ce qui est pratique pour trouver les erreurs ou voir rapidement le nombre de fichiers). Le fichier est ensuite fermé et la fonction renvoie True (vrai). | ||
| Ligne 134: | Ligne 135: | ||
| Fonction : update_database | Fonction : update_database | ||
| - | C'est le pont d' | + | C'est le point d' |
| Pour chaque ligne non vide, elle exécute les étapes suivantes : | Pour chaque ligne non vide, elle exécute les étapes suivantes : | ||
| - | Découper la ligne selon le séparateur « - » (on obtient ainsi une ligne du genre [' | + | • Découper la ligne selon le séparateur « - » (on obtient ainsi une ligne du genre [' |
| - | Supprime le libellé FCM pour ne conserver que le numéro | + | • Supprime le libellé FCM pour ne conserver que le numéro. |
| - | Crée une entrée, constituée d'une paire clé/valeur vide, dans le dictionnaire | + | • Crée une entrée, constituée d'une paire clé/valeur vide, dans le dictionnaire. |
| - | Complète les informations de cette entrée (si le titre est vide – certain | + | • Complète les informations de cette entrée (si le titre est vide - certains |
| - | DateFind | + | • dateFind |
| - | Database.update est utilisée pour ajouter (ou mettre à jour) les informations concernant le numéro courant. | + | • Database.update est utilisée pour ajouter (ou mettre à jour) les informations concernant le numéro courant. |
| Une fois que la boucle for est terminée, le fichier est refermé, la valeur -1 de la base de données (la valeur originale de entryTemplate) est effacée et la base de données est renvoyée. | Une fois que la boucle for est terminée, le fichier est refermé, la valeur -1 de la base de données (la valeur originale de entryTemplate) est effacée et la base de données est renvoyée. | ||
| Ligne 148: | Ligne 149: | ||
| Fonction : write_database | Fonction : write_database | ||
| - | C'est une fonction rapide | + | C'est une fonction rapide qui utilise json.dumps pour simplement écrire le dictionnaire dans un fichier JSON. Il l' |
| Fonction : write_csv_database | Fonction : write_csv_database | ||
| - | Cette fonction utilise csv.writer pour créer un fichier CSV valide. La ligne 95 liste toutes les clés d'une entrée (typiquement, l' | + | Cette fonction utilise csv.writer pour créer un fichier CSV valide. La ligne 95 liste toutes les clés d'une entrée (ici, l' |
| Ligne 173: | Ligne 173: | ||
| This is mainly to indicate that the function completed correctly. It’s also a useful step if you want to support error handling.** | This is mainly to indicate that the function completed correctly. It’s also a useful step if you want to support error handling.** | ||
| - | |||
| Fonction : main | Fonction : main | ||
| - | c'est un endroit où j' | + | C' |
| + | Les fonctions Drive | ||
| - | Les fonctions Drive | + | Fonction : cd |
| - | Fonction : CD | + | Cela recrée simplement une fonction cd à partir d'un Bash, mais renvoie également vers le répertoire (directory) original, de façon à ce que la commande d' |
| - | Cela recrée simplement une fonction cd à partir d'un Bash, mais renvoie également vers le répertoire (directory) original – de façon à ce que la commande d' | ||
| La fonction : update_drive | La fonction : update_drive | ||
| Ligne 191: | Ligne 190: | ||
| - | Pourquoi | + | Pourquoi quelques fonctions renvoient True ? |
| C'est d' | C'est d' | ||
| Ligne 219: | Ligne 218: | ||
| Que fais-je avec la base de données ? | Que fais-je avec la base de données ? | ||
| - | Il y a un certain nombre de choses que vous pouvez faire. En utilisant quelque chose comme OpenRefine vous pouvez nettoyer votre base (rechercher les fichiers qui n'ont pas de titre par exemple). Ou bien vous pouvez l' | + | Il y a un certain nombre de choses que vous pouvez faire. En utilisant quelque chose comme OpenRefine vous pouvez nettoyer votre base (rechercher les fichiers qui n'ont pas de titre, par exemple). Ou bien vous pouvez l' |
| Enfin vous pouvez l' | Enfin vous pouvez l' | ||
| - | |||
| Puis-je faire des recherches ? | Puis-je faire des recherches ? | ||
| - | Vous pouvez soit ouvrir le fichier JSON et rechercher manuellement ou l' | + | Vous pouvez soit ouvrir le fichier JSON et rechercher manuellement, ou l' |
| - | J' | + | J' |
| Lectures complémentaires | Lectures complémentaires | ||
| https:// | https:// | ||
| - | Les outils du CLI de Drive | + | Les outils du CLI de Drive. |
| http:// | http:// | ||
| - | La commande cd de Linux dans StackOverflow | + | La commande cd de Linux dans StackOverflow. |
issue108/c_c.1462621675.txt.gz · Dernière modification : 2016/05/07 13:47 de erlevo
