J'ai une chaîne que je veux utiliser comme nom de fichier, donc je veux supprimer tous les caractères qui ne seraient pas autorisés dans les noms de fichiers, en utilisant Python.
Je préfère être strict qu'autrement, alors disons que je veux conserver uniquement des lettres, des chiffres et un petit ensemble d'autres caractères comme "_-.() "
. Quelle est la solution la plus élégante?
Le nom de fichier doit être valide sur plusieurs systèmes d'exploitation (Windows, Linux et Mac OS) - c'est un fichier MP3 dans ma bibliothèque avec le titre du morceau comme nom de fichier, et est partagé et sauvegardé entre 3 machines.
os.path
charge en fait une bibliothèque différente selon le système d'exploitation (voir la deuxième note dans la documentation ). Donc, si une fonction de citation a été implémentée, os.path
elle ne peut citer que la chaîne pour POSIX-safety lors de l'exécution sur un système POSIX ou pour windows-safety lors de l'exécution sur Windows. Le nom de fichier résultant ne serait pas nécessairement valide à la fois sur Windows et POSIX, ce que demande la question.