3
respostas

[Python3.6] urlretrieve gerando "No such file" error

Boa tarde!

Preciso realizar o download de algumas imagens em PNG utilizando o urlretieve, porém no loop para renomear o arquivo ele gera erro "urllib.request.urlretrieve(url, j)", se eu passo a variável "j", ele gera erro, se eu passo uma string "teste.png" ele funciona, mas preciso renomear conforme o objectlist.

objectlist = ["1", "2", "3"]
namelist = ["name1.png", "name2.png", "name3.png"]    

for i in objectlist:
    for j in namelist:
    url = "https://your.domain/id="+i
    urllib.request.urlretrieve(url, j)
CeXs-MacBook-Air:Report Graphics danielvincenzi$ python3 main.py
    Traceback (most recent call last):
      File "main.py", line 55, in <module>
        download(objectid, nameid)
      File "main.py", line 53, in download
        urllib.request.urlretrieve(url, j)
      File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 258, in urlretrieve          
        tfp = open(filename, 'wb')
    FileNotFoundError: [Errno 2] No such file or directory: 'name1.png'

Agradeço a ajuda de vocês!

Abraços,

Daniel Vincenzi

3 respostas

Oi Daniel,

Com que string você está tentando? teste.pngmesmo ou outro nome?

O erro fala que não achou o arquivo name1.png. Realmente existe um arquivo com esse nome na url que você está usando para fazer o download?

Olá Ana, tudo bem? Obrigado por me ajudar.

Então, na verdade eu estou utilizando outro código, porém o caso é igual a este. Mudei apenas a URL e o valor das strings das variáveis. No momento que passo a string "teste.png" no lugar do "j": "urllib.request.urlretrieve(url, j)", ficando "urllib.request.urlretrieve(url, "teste.png")" a imagem PNG é baixada e renomeada com sucesso. Porém, quando informa um array com strings dentro do "for", ele não renomeia e ocorre este erro.

Obrigado!

Oi Daniel, que isso. Espero conseguir te ajudar!

Você está testando com a mesma string no array e no lugar do j, né?