Как скачать изображение URL внутри TXT? - PullRequest
0 голосов
/ 07 февраля 2019

Как загрузить изображение с помощью URL, который содержится в текстовом файле?Потому что у меня есть куча текстовых файлов, содержащих URL-адрес изображения. / Мне удается загрузить его с моим кодом, но как-то зависает при доступе к некоторому URL-адресу.

Это мой код:

import urllib.request
import cv2
import numpy as np
import os
from pathlib import Path

_directory = Path('VGG').glob('*')

def store_raw_images(file):
    pathname, filename = os.path.split(file)
    name = filename[:-4]

    print('===Gathering '+str(name)+"===")
    face_link = open(str(file))   
    # face_image_urls = urllib.request.urlopen(face_link).read().decode()

    # print('path', pathname)
    # print('filename', filename)
    # print(name)
    # print(extension)

    if not os.path.exists('VGG/'+str(name)):
        os.makedirs('VGG/'+str(name))

    for i in face_link:
        try:
            url = i.split(" ")[1]
            index = i.split(" ")[0]
            print(str(pic_num)+" "+str(i))
            urllib.request.urlretrieve(url, "VGG/"+str(name)+"/"+str(index)+".jpg")
            img = cv2.imread("VGG/"+str(name)+"/"+str(pic_num)+".jpg")

            # img = cv2.imread("image/"+str(pic_num)+".jpg",cv2.IMREAD_GRAYSCALE)
            # should be larger than samples / pos pic (so we can place our image on it)
            # resized_image = cv2.resize(img, (100, 100))
            # cv2.imwrite("image/"+str(pic_num)+".jpg",resized_image)

            cv2.imwrite("VGG/"+str(name)+"/"+str(pic_num)+".jpg",img)
            pic_num += 1

            if (pic_num == 631):
                continue

        except Exception as e:
            print(str(e))

for file_name in _directory:
    store_raw_images(file_name)

Ссылка на этот файл: https://ufile.io/pug4w

1 Ответ

0 голосов
/ 07 февраля 2019

Это для файла .csv, который работал, попробуйте заменить txt вместо .csv, он может работать.

import csv
import requests

with open('fotos.csv') as csvfile:
    csvrows = csv.reader(csvfile, delimiter=',', quotechar='"')
    for row in csvrows:
        filename = row[0]
        url = row[1]
        print(url)
        result = requests.get(url, stream=True)
        if result.status_code == 200:
            image = result.raw.read()
            open(filename,"wb").write(image)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...