Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python youtube dl输出文件不是unicode格式?_Python_Unicode_Youtube Dl - Fatal编程技术网

python youtube dl输出文件不是unicode格式?

python youtube dl输出文件不是unicode格式?,python,unicode,youtube-dl,Python,Unicode,Youtube Dl,在创建输出文件时,是否仍然可以获得使用unicode的youtube dl.extract_info()函数 我遇到了一个问题,如果您下载标题中带有unicode字符(如|)的内容,则输出文件名将不具有相同的字符。它将被替换为。 以此为例。 如果我用youtube dl下载它,那么我会得到这个文件名【Nightcore】→ 《美丽女孩》歌词dMAOnScOyGE。同样的事情发生在不同类型的角色身上 有没有办法阻止这一切? 因为如果你想在事后处理这个文件,那会很烦人 要获取新文件名,我需要执行类似

在创建输出文件时,是否仍然可以获得使用unicode的
youtube dl.extract_info()
函数

我遇到了一个问题,如果您下载标题中带有unicode字符(如
|
)的内容,则输出文件名将不具有相同的字符。它将被替换为

以此为例。 如果我用youtube dl下载它,那么我会得到这个文件名
【Nightcore】→ 《美丽女孩》歌词dMAOnScOyGE
。同样的事情发生在不同类型的角色身上

有没有办法阻止这一切? 因为如果你想在事后处理这个文件,那会很烦人


要获取新文件名,我需要执行类似os.listdir(dir)的操作来获取该文件。因此,获取新文件名并非不可能,但我感兴趣的是是否有更简单的方法。

编码为
是硬编码的。您可以通过使用自己的实现替换
youtube\u dl.utils.sanitize\u filename
以编程方式将其关闭

但是,不建议这样做,也不支持开箱即用。这是因为
|
在Windows上是无效字符,如果在错误脚本中展开,则可用于执行任意命令


不安全的文件名曾一度受到支持,但我将其从youtube dl中删除,因为有太多人在攻击自己的脚,并且经常报告问题,这些问题显然会让任何攻击者在他们的机器上执行任意代码。

这个答案有用吗?如果我想更改下载路径,我会这样做,但我还需要重命名文件,所以我认为这不能完全解决问题。但我很感激快速帮助:)这与“Unicode”无关,
是一个ASCII字符(以及Unicode字符,就像任何其他字符一样)。YTDL只是确保路径不会引起问题;在许多上下文中,管道是一种特殊字符。您通常需要一个可预测的路径,或者确切地知道它创建了什么文件。所以没有办法关闭它吗?