URL: https://linuxfr.org/news/simplifier-l-usage-de-wsh-avec-pystdlib4wsh Title: Simplifier l'usage de WSH avec pystdlib4wsh Authors: Ysabeau đ§¶, palm123, BenoĂźt Sibaud, gUI et Pierre Jarillon Date: 2023ćčŽ12æ05æ„T21:10:43+01:00 License: CC By-SA Tags: wsh Score: 15 Windows Script Host (WSH) est le systĂšme Microsoft permettant dâexĂ©cuter des scripts vbscript et [JScript](https://fr.wikipedia.org/wiki/JScript) (Ă ne pas confondre avec JavaScript). Permettez-moi de vous prĂ©senter le projet libre pystdlib4wsh. Il sâagit dâune couche dâabstraction implĂ©mentant une (petite) partie de la bibliothĂšque standard de Python pour WSH. ---- [Github](https://github.com/Taratata37/pystdlib4wsh) ---- ## Pourquoi ? Sous Linux, lâutilisateur dispose du bash et de Python comme langages de scripts livrĂ©s la plupart du temps. Sous Windows il peut utiliser un antique script bat/cmd, depuis MS-DOS. Option trĂšs limitĂ©e. Il peut utiliser PowerShell sur les versions rĂ©centes. Ou WSH, inclus dâoffice depuis Windows 98. Lâinstallation de Python nâest pas toujours possible (en environnement pro notamment). Faute de mieux, je suis parfois contraint dâĂ©crire des (petits) scripts WSH pour simplifier/automatiser des traitements dans le cadre professionnel. Jâai donc entrepris de crĂ©er une implĂ©mentation partielle de la bibliothĂšque standard de Python. Celle-ci est Ă mon avis bien plus lisible que la crĂ©ation dâobjets COM pour effectuer les opĂ©rations basiques (ouverture de fichier, tĂ©lĂ©chargement, etc.). Une sorte de kit de survie pour adoucir un peu la tĂąche de crĂ©ation de scripts lorsque lâon est contraint de passer par du WSH, en contexte professionnel par exemple. Il peut Ă©galement sâentendre que les scripts rĂ©digĂ©s en utilisant cette couche dâabstraction seraient Ă priori, dans une certaine mesure, moins difficiles Ă traduire en Python par la suite. ## Les interfaces implĂ©mentĂ©es Lâensemble est intĂ©gralement codĂ© en JScript, divisĂ© pour le moment en trois pseudo-modules (os, IO, requests) * IO : La mĂ©thode open() permet la lecture et lâĂ©criture de fichiers textes (objet TextIOBase) ou binaires (objet RawIOBase). La classe configparser permet en outre de lire les fichiers ini en offrant une interface analogue Ă ce qui se fait en Python. * requests : La mĂ©thode urlopen() permet de tĂ©lĂ©charger un contenu distant. * os : Les fonctions dirname() et exists() correspondant Ă leurs homologues Python. ## En pratique La documentation de rĂ©fĂ©rence est tout simplement la documentation de la bibliothĂšque standard de Python. LâimplĂ©mentation est amĂ©liorĂ©e Ă lâusage au fur et Ă mesure des contributions. Que ce soient des remontĂ©s de besoin ou des propositions de morceaux de code. Cette implĂ©mentation nâa pas vocation Ă fournir 100% de compatibilitĂ© avec les modules concernĂ©s. PlutĂŽt de rĂ©pondre convenablement Ă 80% des besoins avec 20% dâimplĂ©mentation, conformĂ©ment au principe de Pareto. Et bien sĂ»r vous trouverez via le lien vers le projet le code source et des exemples concrets dâutilisation.