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

Python报错TypeError: can only concatenate str (not "int") to str含义及代码问题

解决Python图片复制时的TypeError问题

错误原因

你代码里的src + (i) + ext直接把字符串src、整数i、字符串ext拼接,Python不允许字符串和整数直接相加,这就是报错的根源。另外你的src已经包含完整文件名和后缀,直接拼接会生成格式错误的目标路径(比如D:\src\C:\Users\Gamal\Pictures\Picture21.jpg0.jpg)。

修正方案

正确做法是拆分原路径的目录、文件名和后缀,再用f-string格式化生成带序号的目标路径,同时解决类型错误和路径格式问题。

修正后的代码:

import shutil
import os

# 原图片完整路径
src = r'C:\Users\Gamal\Pictures\Picture21.jpg'

# 拆分路径,分离目录、文件名(不含后缀)和后缀
dir_path, full_filename = os.path.split(src)
base_name, ext = os.path.splitext(full_filename)

# 设置需要复制的次数,可自行修改
copy_times = 5

# 循环复制,序号从1开始更符合使用习惯
for i in range(1, copy_times + 1):
    # 生成带序号的目标路径
    dst_path = os.path.join(dir_path, f'{base_name}_{i}{ext}')
    shutil.copy(src, dst_path)

关键修正点

  • 用os.path.split和os.path.splitext拆分路径,避免手动拼接路径时的格式错误
  • 通过f-string将整数i直接格式化为字符串,彻底解决类型拼接问题
  • 生成的目标文件名格式更规范(如Picture21_1.jpg),不会出现重复后缀的情况
  • 循环从1开始,生成的序号更符合日常使用习惯

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:27:27