Suppression des caractères illégaux des noms de fichiers en Python
Lors de l'utilisation d'une chaîne comme nom de fichier, il est essentiel de s'assurer qu'elle ne contient que des caractères autorisés par différents systèmes d'exploitation. Cela signifie supprimer tous les symboles ou caractères susceptibles de provoquer des conflits ou une corruption.
Pour une solution complète qui adhère à des critères stricts et prend en charge les noms de fichiers sous Windows, Linux et Mac OS, envisagez de tirer parti des fonctionnalités fournies par le framework Django. . Plus précisément, la fonction slugify() :
<code class="python">import unicodedata import re def slugify(value, allow_unicode=False): # Normalize and convert to ASCII if necessary if allow_unicode: value = unicodedata.normalize('NFKC', value) else: value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore').decode('ascii') # Filter out non-alphanumeric, underscore, or hyphen characters value = re.sub(r'[^\w\s-]', '', value.lower()) # Replace spaces and consecutive hyphens with single hyphens return re.sub(r'[-\s]+', '-', value).strip('-_')</code>
Cette fonction convertit efficacement les caractères spéciaux en leurs équivalents ASCII, supprime les symboles indésirables, convertit tout en minuscules et remplace les espaces et plusieurs tirets par des tirets simples. La chaîne résultante peut être utilisée comme nom de fichier sur plusieurs systèmes d'exploitation, garantissant un transfert et une compatibilité transparents.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!