Python 3.x 从不能在命令行(python)中使用的字符串中删除所有特殊字符

Python 3.x 从不能在命令行(python)中使用的字符串中删除所有特殊字符,python-3.x,Python 3.x,我正在制作一个tk应用程序,其中必须使用subprocess.check_call()从python执行一个命令行应用程序(MP4Box)。 文件名(在命令中使用)是从youtube检索的,因此具有所有类型的特殊字符。我想删除操作系统中不能用作文件名的所有字符,顺便说一句(我希望实现可以跨多个平台工作) 我反复尝试了这个解决方案 . windows似乎接受该文件名,但它返回了一个与子程序有关的错误。请检查\u call()。 我试图手动删除文件名中的特殊字符,之后效果良好。因此,这不是命令的问题

我正在制作一个tk应用程序,其中必须使用subprocess.check_call()从python执行一个命令行应用程序(MP4Box)。 文件名(在命令中使用)是从youtube检索的,因此具有所有类型的特殊字符。我想删除操作系统中不能用作文件名的所有字符,顺便说一句(我希望实现可以跨多个平台工作)

我反复尝试了这个解决方案 . windows似乎接受该文件名,但它返回了一个与子程序有关的错误。请检查\u call()。 我试图手动删除文件名中的特殊字符,之后效果良好。因此,这不是命令的问题

编辑:

例如,我测试了视频。上面链接中的解决方案不会删除“ä”并在命令行中导致问题

我终于找到了正确的答案。Ascii成功了:)

'.join([t代表t in if t.isalnum()])。encode('ascii','ignore'))

嗨!欢迎来到StackOverflow。为了让SO成员更好地理解您的问题并帮助您,建议您提供一个最小、完整且可验证的示例()。@VictorDomingos done:)
''.join([t for t in <filenmae> if t.isalnum()]).encode('ascii', 'ignore'))