# Stage Émile [TOC] ## Partie dev :computer: Penser à noter toutes ses questions n'importe où dans le fichier avec ce format : :question: Benjamin : Tout va bien ? :question: Émile : Comment on fait xxx en Python ? On aura ainsi un beau document de suivi ### Mise à niveau Python Pour rendre le stage plus vivant et que tu comprennes le métier de développeur je te propose de commencer par suivre ce petit cours : https://openclassrooms.com/fr/courses/4262331-demarrez-votre-projet-avec-python?archived-source=235344 N'hésite pas à noter toutes tes questions / remarques ici. Suite mise à niveau : - https://openclassrooms.com/fr/courses/4302126-decouvrez-la-programmation-orientee-objet-avec-python - https://openclassrooms.com/fr/courses/1206331-utilisation-avancee-des-listes-en-python ### Sujet :page_with_curl: Pour te mettre dans la peau d'un déveoppeur pendant ton stage, je te propose de réaliser un script Python permettant de : - Découper un fichier CSV en plusieurs plus petits fichiers - En respectant le format - En demandant à l'utilisateur comment le découper En fonction de ta vitesse de réalisation nous rajouterons plus ou moins de fonctionnalités Ci-dessous la liste des étapes pour y parvenir #### Lire un fichier CSV - Lire https://fr.wikipedia.org/wiki/Comma-separated_values pour comprendre ce qu'est un fichier CSV - Lire https://docs.python.org/fr/3/library/csv.html#csv.reader pour savoir comment lire facilement un fichier CSV depuis Python (utilisation d'une bibliothèque dédiée) - Créer un petit fichier CSV (reprendre l'exemple de Wikipedia) qu'on appelera `toto.csv` - Écrire un premier programme qui va lire un fichier CSV et l'afficher - Lancer le programme - Admirer le résultat #### Écrire un fichier CSV - Lire https://docs.python.org/fr/3/tutorial/inputoutput.html#tut-files pour comprendre comment fonctionne l'ouverture de fichier. **Attention ouvrir un fichier avec le mode à 'w' va écraser tout fichier existant portant le nom passé en paramètre de la fonction open** - Lire https://docs.python.org/fr/3/library/csv.html#csv.writer pour savoir comment écrire un fchier CSV - Modifier le programme précédent pour écrire le fichier CSV dans un aure fichier appelé `toto_result.csv` - Ouvrir le fichier une fois créé par python et vérifier qu'il est semable à `toto.csv` - Vérifier que le caractère de séparation des champs est bien celui d'origine #### Le couper en X fichiers de L lignes X sera calculé automatique en fonction du nombre de lignes total du fichier et de L - Avoir un fichier d'au moins 50 lignes - Faire une première version avec L qui vaut 10 - Faire une deuxième version avec L qui est un paramètre (avec un nom explicite) de la fonction écrivant les fichiers - Demander à l'utilisateur la valeur de L au lancement du programme Indices : :bulb: - Pour s'entrainer tu peux t'amuser à compter le nombre de lignes du fichiers - il va falloir fermer les fichiers écrits toutes les L lignes lues et en re-ouvrir un nouveau à chaque fois. Attention à bien gérer le dernier fichier qui sera certainement de moins de L lignes. TODO : - Regarde la doc de https://docs.python.org/fr/3.9/library/os.path.html#os.path.join - Mettre au maximum les emplacement dans des variables pour éviter les répétitions - utiliser os.path.join pour définir l'emplacement des fichiers proprement (ca sera compatible windows et linux) - Passer le code dans une fonction qui prend le nombre de lignes avant de couper en paramètre - Bien fermer ce qui est ouvert avant que le programme ne finisse - Utiliser des noms explicite pour toutes les variables (pas de "g" ou de "f" ) - Utiliser les f-string pour les concaténations de chaines de caractère plutôt que des "+" #### S'il y a un header alors le récopier dans chaque fichier - Demander à l'utilisateur s'il y a un header et s'il souhaite le recopier dans chaque bout de fichier #### Proposer une option pour couper le fichier en X parties de tailles égales Il se peut que ça ne tombe pas juste, ce n'est pas important. ## Partie veille :sleuth_or_spy: ## Présence sur site avec Benjamin :calendar: - Mercredi 9 - Vendredi 11 (départ 16h30) - Mercredi 16 - Vendredi 18 (départ 16h30) ? ## Synchro Benjamin :calendar: 30mn tous les jours à 16h30 ## Questions :question: - Benjamin : Est-ce-que tu as un ordinateur portable ? Sous quel OS ? oui, sous windows 10 - Benjamin : Est-ce-que tu as un document à rédiger à la fin du stage ? une présentation powerpoint - Benjamin : As-tu besoin de réaliser des petites interviews ? Non, pas obligatoirement ## TODO Benjamin :ballot_box_with_check: Organiser une prise de contact avec Gregory pour la partie veille ### Ce qui a été vu en tuto: Liste, dictionnaire, fonctions, conditions Modifier les chaines, les listes les dictionnaires Boucles : while et for ## Structure Président - Directeur Commercial et Marketing - Marketing (contenu) - Sales (vendeurs) - Produit (Définir comment doit être Invenis) - Data Analyst (prestataire) - Directeur Technique - Frontend (visible) - Backend (caché) - Compute (calcul + BigData + IA) - Devops (automatisation) / infra (gestion des machines) - Responsble admin / finance