我正在使用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'
答案 0 :(得分:0)
if "/" or "\\" or '.' not in sound.name
只是"/"
(真相)与其他表达式一起使用。由于它是“真实的”,它停在这里(短路),你总是输入if
。
尝试使用自然语言不是python中编码的正确方法。
除此之外,请注意这里唯一有问题的字符是斜杠/反斜杠(你也应该测试冒号),但是对于文件名来说是圆点
为了使其正常工作,我会像这样使用any
:
if not any(x in "/\\:" for x in sound.name):