Eu tenho uma string que quero usar como nome de arquivo, então quero remover todos os caracteres que não seriam permitidos nos nomes de arquivos, usando Python.
Prefiro ser rigoroso do que o contrário, então digamos que quero reter apenas letras, dígitos e um pequeno conjunto de outros caracteres, como "_-.() "
. Qual é a solução mais elegante?
O nome do arquivo precisa ser válido em vários sistemas operacionais (Windows, Linux e Mac OS) - é um arquivo MP3 na minha biblioteca com o título da música como nome do arquivo e é compartilhado e copiado entre três máquinas.
os.path
fato carrega uma biblioteca diferente, dependendo do sistema operacional (consulte a segunda nota na documentação ). Portanto, se uma função de citação foi implementada, os.path
ela só poderia citar a sequência de caracteres para segurança POSIX ao executar em um sistema POSIX ou para segurança para janelas ao executar no Windows. O nome do arquivo resultante não seria necessariamente válido nas janelas e no POSIX, que é o que a pergunta pede.