今天用python做了一个爬虫爬取图片,用日期命名,日期格式为%m/%d
,看上去是不很合理,很合乎逻辑。其中写文件代码:
with open(str(img_name), 'wb') as f:
f.write(img)
可是在文件写入的时候却反反复复地报错:
FileNotFoundError: [Errno 2] No such file or directory: '01/30.jpg'
当时我并没有想到是文件命名错误,而且由于代码中还有其他模块,就以为是其他部分写错了,查阅了相当多的资料,耗费了相当多的时间却没有解决。直到查看一篇博客,里面有一句话说:
文件未发现错误:没有这样的文件或目录。可知,该文件夹的名称为train-images-idx3-ubyte没有被找到!而不是某个子文件
‘./data\mnist\train-images-idx3-ubyte’
这给了我启示,于是回过头来认真看报错信息,终于发现了原因——Linux中文件命名不能使用“/”。解决办法当然也很简单,把日期格式换为%m_%d
再用作文件名即可。
有报错信息一定要先从报错信息入手分析,而不是凭借“经验”做发散联想。