You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用wget下载含重复文件名的多文件时自定义重命名格式

批量下载文件并自定义重复文件名格式

方案一:Python脚本(推荐,灵活可控)

这种方式能精准控制重复文件的命名规则,完全满足文件名_序号.扩展名的需求。

步骤:

  1. 确保安装了requests库,没有的话执行:
pip install requests
  1. 创建Python脚本(比如download_files.py),内容如下:
import os
import requests

def get_filename_from_url(url):
    # 从链接提取文件名
    filename = url.split('/')[-1]
    # 拆分文件名和扩展名
    if '.' in filename:
        name_part, ext_part = filename.rsplit('.', 1)
        return name_part, ext_part
    else:
        return filename, ''

def download_file(url, save_dir='./'):
    if not os.path.exists(save_dir):
        os.makedirs(save_dir)
    
    name_part, ext_part = get_filename_from_url(url)
    # 生成目标文件名
    if ext_part:
        base_name = f"{name_part}.{ext_part}"
    else:
        base_name = name_part
    
    target_path = os.path.join(save_dir, base_name)
    counter = 1
    # 检查文件是否存在,存在则递增序号
    while os.path.exists(target_path):
        if ext_part:
            target_name = f"{name_part}_{counter}.{ext_part}"
        else:
            target_name = f"{name_part}_{counter}"
        target_path = os.path.join(save_dir, target_name)
        counter += 1
    
    # 下载文件
    try:
        response = requests.get(url, stream=True)
        response.raise_for_status()
        with open(target_path, 'wb') as f:
            for chunk in response.iter_content(chunk_size=8192):
                f.write(chunk)
        print(f"已下载:{target_path}")
    except Exception as e:
        print(f"下载失败 {url}:{str(e)}")

if __name__ == '__main__':
    # 读取链接文件,替换成你的链接文件名
    url_file = 'urls.txt'
    with open(url_file, 'r', encoding='utf-8') as f:
        urls = [line.strip() for line in f if line.strip()]
    
    for url in urls:
        download_file(url)
  1. 把你的链接文件命名为urls.txt,和脚本放在同一目录,执行脚本:
python download_files.py

方案二:Shell脚本(结合curl)

如果熟悉Linux/macOS的shell环境,也可以用这种方式:

创建脚本download_with_custom_rename.sh:

#!/bin/bash

URL_FILE="urls.txt"
SAVE_DIR="./downloads"

mkdir -p "$SAVE_DIR"

while IFS= read -r url; do
    [ -z "$url" ] && continue
    filename=$(basename "$url")
    # 拆分文件名和扩展名
    if [[ "$filename" == *.* ]]; then
        name_part="${filename%.*}"
        ext_part="${filename##*.}"
    else
        name_part="$filename"
        ext_part=""
    fi

    counter=1
    if [ -n "$ext_part" ]; then
        target="$SAVE_DIR/$name_part.$ext_part"
    else
        target="$SAVE_DIR/$name_part"
    fi

    while [ -f "$target" ]; do
        if [ -n "$ext_part" ]; then
            target="$SAVE_DIR/${name_part}_${counter}.${ext_part}"
        else
            target="$SAVE_DIR/${name_part}_${counter}"
        fi
        ((counter++))
    done

    curl -o "$target" "$url"
    echo "已下载:$target"
done < "$URL_FILE"

赋予执行权限并运行:

chmod +x download_with_custom_rename.sh
./download_with_custom_rename.sh

两种方案都会自动检测已存在的文件,将重复文件命名为文件名_序号.扩展名的格式,比如第二个file.exe会被命名为file_1.exe,第三个为file_2.exe,以此类推。

内容的提问来源于stack exchange,提问作者Krzysiek127

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 01:40:17