用写二进制文件打开文件时,始终出现找不到文件的错误

时间:2019-03-05 02:22:57

标签: python file-io compiler-errors automation python-requests

我正在尝试从“用Python自动化乏味的东西”复制项目,您可以在其中使用请求下载每个XKCD漫画。它很短,所以我只在这里输入:

import requests, bs4,os
from pathlib import Path

os.makedirs('./XKCD', exist_ok= True)
path = os.path.abspath('./XKCD')

url = 'http://xkcd.com'

while not url.endswith('#'):
    print('downloading page %s...' % url)
    xkcdPage = requests.get(url)
    XKCDsoup = bs4.BeautifulSoup(xkcdPage.text,features="html.parser")
    picTags = XKCDsoup.select('img')
    #print (picTags)

    for tag in picTags:
        if 'title' in tag.attrs:
            webComic = requests.get('http:' + tag.attrs['src'])
            realTitle = tag.attrs['title'][:200]
            fileName = Path(os.path.join(path,realTitle))
           # fileName.touch(exist_ok = True)
            savedComic = open(os.path.join(path, realTitle),'wb')
            for chunk in webComic.iter_content(100000):
                savedComic.write(chunk)

    savedComic.close()

    prevTag = XKCDsoup.select('a[rel="prev"]')[0]
    url = 'http://xkcd.com' + prevTag.get('href')

目前,我已经找到了找到图片网址,下载图片并转到上一个漫画页面的代码。我的问题是我的程序读取了大约40幅漫画,然后吐出

savedComic = open(os.path.join(path, realTitle),'wb')
FileNotFoundError: [Errno 2] No such file or directory:

我不确定这是哪里来的。以我的理解,open(filename,wb)在某个路径下打开一个文件,如果该文件不存在,它将创建它。我一直在寻找答案,并且提出了两种可能性:

  • 文件夹的读写权限不正确。这个没有意义,因为我已经可以将30多个文件写入该文件夹

  • 文件路径不正确。同样,这没有任何意义,因为我可以将其他文件写入该文件夹,并且我已经重写了代码以使用abspath而不是相对路径。

  • 我使用了错误的功能来打开文件。如您所见,我检查了其他stackexchange答案,并尝试使用fileName.touch()创建文件(如果该文件不存在)。

老实说,我目前不确定。

0 个答案:

没有答案