gpt4 book ai didi

Python:URL 图像下载。 URL 包含一个带重音的字母。我收到一个错误

转载 作者:行者123 更新时间:2023-12-03 20:52:46 25 4
gpt4 key购买 nike

存在一个问题,即 .csv 文件中的 URL 包含重音字母(á、é、í 等)。如果其中包含重音字符,我会收到错误消息。

import pandas as pd
import urllib.request


def url_to_jpg(i, url, file_path):

filename = 'image-{}.jpg'.format(i)
full_path = '{}{}'.format(file_path, filename)
urllib.request.urlretrieve(url, full_path)

print('{} saved.'.format(filename))

return None

FILENAME = 'imgs_urls.csv'
FILE_PATH = 'images/'

urls = pd.read_csv(FILENAME, encoding ='latin1')


for i, url in enumerate(urls.values):
url_to_jpg(i, url[0], FILE_PATH)

错误图片:

Picture of the error

有人可以帮助我吗?

最佳答案

您不能使用带有非 ASCII 字符的 URL,您需要先清理/转换它们。

在您的情况下,您将添加 clean_url下面的函数进入你的循环。这与您在 python 3: 中的链接一起使用

  • urllib.parse.urlsplit将 URL 拆分为组件
  • urllib.parse.quote将正确转义Unicode
    字符
  • urllib.parse.urlunsplit将它重新连接在一起

  • .
    import urllib.request
    import urllib.parse

    def url_to_jpg(url, file_path):
    urllib.request.urlretrieve(url, file_path)
    print('{} saved.'.format(file_path))

    def clean_url(url):
    url = urllib.parse.urlsplit(url)
    url = list(url)
    url[2] = urllib.parse.quote(url[2])
    url = urllib.parse.urlunsplit(url)
    return url

    url = u'<url_with_non_ascii_char>'

    url = clean_url(url)
    url_to_jpg(url, "test.jpg")

    关于Python:URL 图像下载。 URL 包含一个带重音的字母。我收到一个错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62092266/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com