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

从CSV导入文件名拼接文件夹路径时遇TypeError错误求助

解决CSV读取后路径拼接的TypeError问题

错误原因

你用csv.reader读取文件时,哪怕CSV里只有单列数据,每一行也会被解析成一个包含单个字符串的列表(比如['img1.jpg'])。所以file_names里的每个元素都是列表,不是字符串,直接和路径字符串拼接自然会报错TypeError: can only concatenate str (not "list") to str。

修正方案

方案1:修正CSV读取逻辑

读取时直接提取每行的第一个元素,把列表转成字符串列表:

import csv
import shutil

# 测试路径变量
source_folder = "/Users/user/Desktop/testSource/"
destination_folder = "/Users/user/Desktop/testDest/"
list_path = "/Users/user/Desktop/"
list_file = "test.csv"
list_name = list_path + list_file
print("Importing from file: ", list_name)

# 打开CSV并提取文件名(转为字符串列表)
with open(list_name, 'r') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    # 提取每行的第一个元素,跳过空行并清理空白字符
    file_names = [row[0].strip() for row in reader if row]
    print("I found these entries: ", file_names)
    
    # 拼接源路径
    source_files = [source_folder + file for file in file_names]
    print(source_files)
    
    # 执行文件移动
    for src, file in zip(source_files, file_names):
        dest = destination_folder + file
        shutil.move(src, dest)
        print(f"已移动文件: {file}")

方案2:不用CSV模块(更简单)

因为你的CSV本质是每行一个文件名,没有逗号分隔,直接按行读取更高效:

import shutil

# 测试路径变量
source_folder = "/Users/user/Desktop/testSource/"
destination_folder = "/Users/user/Desktop/testDest/"
list_name = "/Users/user/Desktop/test.csv"
print("Importing from file: ", list_name)

# 按行读取文件名
with open(list_name, 'r') as f:
    # 去掉每行的换行符和空白,跳过空行
    file_names = [line.strip() for line in f if line.strip()]
    print("I found these entries: ", file_names)
    
    # 移动文件
    for file in file_names:
        src = source_folder + file
        dest = destination_folder + file
        shutil.move(src, dest)
        print(f"已移动文件: {file}")

补充说明

  • 加.strip()是为了去掉文件名前后的空格、换行符等空白字符,避免路径拼接出错
  • if row/if line.strip()是为了跳过CSV里的空行,避免处理无效路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 10:10:22