En ce momentGenshin ImpactValhallaBreath of the wildAnimal CrossingGTA 5Red dead 2
Liste des sujets
[Python/Windows/CMD] Gestion de plusieurs espaces contiguës dans un chemin
[hard]ware
Niveau 14
14 avril 2019 à 22:12:33
Salut
Bon alors j'essaye de me faire un petit programme python assez simpliste : Lancer un épisode de Kaamelott au hasard.
Les épisodes (et le programme) sont stockés sur un disque réseau dont voici l'arborescence : https://i.gyazo.com/8ca0750f91007bf888b6b1dba506c1e6.png https://i.gyazo.com/a808b60dd4b508b261087c9f70764f69.png https://i.gyazo.com/f5e50a61859e6b0d75a504d075cc0757.png
Pour moi la difficulté c'est vraiment de traiter avec les chemins Windows, étant donné que j'ai toujours codé uniquement sous Linux.
Donc voici mon "programme" qui en dehors des importations et macros fait... 4 lignes : https://pastebin.com/Lu9CCu6M Ouais les chemins c'est vraiment pas beau, avec tous ces caractères qui doivent être échappés, et la chaine qui doit être donnée entre guillemets à Windows, donc doubles guillemets puisqu'il en faut pour Python aussi ...
Bon, vous vous en doutez, ça marche pas https://i.gyazo.com/1df371b4864af7e56cc20b647ca115c2.png Clairement, ça a l'air de venir du nom du fichier. Je croyais au début que c'était une tabulation qui se trouve dans le nom Mais non, ce sont trois espaces Enfin y'a 450 fichiers, je vais pas m'amuser à tous les renommer...
Autant pour un espace il "suffisait" de mettre le chemin entre guillemets, autant pour plusieurs espaces d'affilé, je sais pas.
Pour la commande de lancement, j'ai fait ça à la Linux, genre ./programme argument et coup de bol ça fonctionne (sauf que c'est Start à la place de ./ ) J'ai fait un test avec un fichier sans espace ou tabulation dans le nom et ça fonctionne : os.system('Start %s %s' % (VIDEO_PLAYER, KAAMELOTT_PATH + "Livre6\\episodes\\test.mkv"))
Voilà, comment je peux gérer ces fichus espaces ?
[hard]ware
Niveau 14
14 avril 2019 à 22:31:08
Aaah j'ai trouvé
le nom de mon épisode n'était pas entre guillemets ! j'avais pas fait attention à ça
Donc voici le programme qui fonctionne : https://pastebin.com/E98Vpm7b
...Et dire que j'ai passé 3 heures sur ce programme