重命名和下载链接 - CSV 文件

Rename and download links - CSV file

我有一个包含 6 列和许多行的 CSV 文件。我想从 'link' 列下载所有 png 或 jpg 到与我的 CSV file.Then 同名的文件夹中我想用每个 'title' 内容重命名这些图像。

url1.png 每个文件 name1.png 直到最后一行..

我以此为起点 -

import csv
with open('name.csv') as csvfile:
    reader = csv.reader(csvfile, delimiter=',', quotechar='|')
    for row in reader:
        fileurl = row[0]
        filename = row[1]
        urllib.request.urlretrieve(fileurl, "name" + filename)

行示例 -

仍在学习中.. 对此有何帮助或建议?

非常感谢。

如果我没理解错的话,您希望下载 link 列中的文件,使用 title 列来构成文件名。

这可以按如下方式完成:

import urllib.request
import csv
import os

with open('name.csv') as csvfile:
    reader = csv.DictReader(csvfile)
    
    for row in reader:
        name, ext = os.path.splitext(row['link'])
        title_filename = f"{row['title']}{ext}".replace('/', '-')
        urllib.request.urlretrieve(row['link'], title_filename)

您可以使用.os.path.splitext()拆分文件名的扩展名。然后可以使用它与 title 中的条目组合以形成新文件名。

例如:

https://url.com/folder/url1.png 将保存为 name1.png


要处理多个相同的 title 条目,您可以调查 Python 的 Counter() 以跟踪您拥有的每个标题的数量。例如:

from collections import Counter
import urllib.request
import csv
import os

with open('name.csv') as csvfile:
    reader = csv.DictReader(csvfile)
    title_counts = Counter()
    
    for row in reader:
        name, ext = os.path.splitext(row['link'])
        title = row['title']
        title_counts[title] += 1
        title_filename = f"{title}_{title_counts[title]}{ext}"
        urllib.request.urlretrieve(row['link'], title_filename)