鱼C论坛

 找回密码
 立即注册
查看: 1858|回复: 3

[已解决]with open 打开不存在的文件时报错

[复制链接]
发表于 2019-9-9 20:38:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
各位鱼友好,最近在看小甲鱼的python视频,到爬虫这里,然后照着小甲鱼的代码尝试着写了一个最简单的爬虫爬妹子图网的图片,结果在最后保存图片的时候遇到问题了,程序运行的时候总是报错
  1. with open(filename,'wb') as f:
  2. FileNotFoundError: [Errno 2] No such file or directory: '2015a/05/24/limg.jpg'
复制代码


我网上查了一下,有人说open里面的路径必须是绝对路径才行,然后我换成绝对路径试了一下,发现还是不行。求高手解答!

爬虫代码如下,简单到无以复加
  1. #爬妹子图网图片

  2. import requests
  3. import os




  4. head = {}
  5. head['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
  6. url = "https://meizitu.com/a/4510.html"   

  7. def GetHtml(url):
  8.     req = requests.get(url, head)
  9.     html = req.text
  10.     return html


  11. def FindImgsAddr(html):
  12.     html = GetHtml(url)
  13.     ImgAddr = []

  14.     a = html.find('img src=')
  15.     while a!= -1:
  16.         b = html.find('.jpg', a, a+255)
  17.         if b != -1:
  18.             ImgAddr.append(html[a+9:b+4])
  19.         else:
  20.             b = a + 9

  21.         a = html.find("img src=", b)
  22.         
  23.     return ImgAddr

  24. #print(FindImgsAddr(GetHtml(url)))      #打印图片地址


  25. def DownloadImgs():
  26.    
  27.     Imgaddr = FindImgsAddr(GetHtml(url))
  28.    

  29.     for each in Imgaddr:
  30.         
  31.         #print(each)        #看图片地址是否正确
  32.       
  33.         filename = each.split("uploads/")[-1]
  34.         
  35.         #print(filename)    # 图片的文件名
  36.         
  37.         with open(filename,'wb') as f:
  38.             img = requests.get(each)
  39.             f.write(img.content)            
  40.             print(filename+"保存完成")

  41. if __name__ == '__main__':
  42.     DownloadImgs()
  43.    
  44. '''
  45. 错误报告:

  46. with open(filename,'wb') as f:
  47. FileNotFoundError: [Errno 2] No such file or directory: '2015a/05/24/limg.jpg'

  48. '''
复制代码
最佳答案
2019-9-9 20:50:25
文件名不能有“/”,替换成“_”试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-9 20:50:25 | 显示全部楼层    本楼为最佳答案   
文件名不能有“/”,替换成“_”试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-9-9 21:29:16 | 显示全部楼层
'2015a/05/24/limg.jpg'?当前程序的路径有一个叫 2015a 的文件夹,2015a 里面有叫 05 的文件夹,05 里面有叫 24 的文件夹,24 里面有叫 limg.jpg 的图片?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-10 18:07:35 | 显示全部楼层
冬雪雪冬 发表于 2019-9-9 20:50
文件名不能有“/”,替换成“_”试试

换成下划线果然可以,我之前还以为文件名里只是不允许有“\”的,没想到“/”也不允许……我果然还是个小白哈哈,感谢感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 09:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表