# 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