下载名称中带有“/”或“\”的文件时出错

时间:2017-08-07 21:55:06

标签: python api search

我正在使用freesound API来搜索和下载用于训练神经网络的声音片段。当脚本遇到名称中带有特殊字符的文件时,它将发出错误并且脚本将停止。我想下载特殊字符所带来的文件并继续搜索。

这是我的代码:( API密钥已经出现,暂时将其取出)

import freesound, sys,os


client = freesound.FreesoundClient()
client.set_token("API KEY","token")

results = client.text_search(query="dog", page_size=150, 
fields="id,name,previews")



for sound in results:
    if "/" or "\\" or '.' not in sound.name:
        sound.retrieve_preview(".", sound.name+".mp3")
        print(sound.name)

错误代码:

FileNotFoundError: [Errno 2] No such file or directory: '.\\Dog eating Neck 
of Goose / Chewing / Breaking Bones.mp3'

1 个答案:

答案 0 :(得分:0)

if "/" or "\\" or '.' not in sound.name

只是"/"(真相)与其他表达式一起使用。由于它是“真实的”,它停在这里(短路),你总是输入if

尝试使用自然语言不是python中编码的正确方法。

除此之外,请注意这里唯一有问题的字符是斜杠/反斜杠(你也应该测试冒号),但是对于文件名来说是圆点

为了使其正常工作,我会像这样使用any

if not any(x in "/\\:" for x in sound.name):