xlrd,os,shutil按照Excel数据复制文件到其他文件夹

问题遇到的现象

不报错也没有执行
返回“========== RESTART: C:\Users\Desktop\运行.py ==========”

img

发生背景

想按照Excel文件名将文件夹里的文件(运单)复制到另一个文件夹(保存位置,本来是打算设置到上一级“1.4 文件复制”,因为实际工作中是在很多文件夹里检索)。
Excel是新建xls文件,只有所需文件名字数据一列,没有标题。

本身是一件已经完成的工作,但是不想每次都在文件夹搜索栏目中检索运单号,然后再一个个文件粘贴到其他文件夹里,所以在CSDN中浏览了一下写了个代码,不是专业的,只是课堂上简单接触过python,麻烦大家帮助解答一下。主要是它不报错,我没有抓手了,不知道怎么调整了。

代码
import os
import xlrd
from shutil import copy

dst_path = r"C:\第七周 1.3-1.7\1.4 文件复制\保存位置"
dir_path = r"C:\12.2 出口退税、单证备案\运单"
datapath = r"C:\第七周 1.3-1.7\1.4 文件复制\工作簿1.xls"

x1 = xlrd.open_workbook(datapath) #打开Excel
table = x1.sheet_by_index(0) #获取一个工作表
idlist = table.col_values(0) #获取整列的值
file_names = os.listdir(dst_path) #获取路径下所有文件名称

src = dir_path
dst = dst_path
for i in idlist:
    for j in file_names:
        if i == j:
            shutil.copy(src,dst)
我想要达到的结果

现在氛围是拿着锤子找钉子,但是锤子在没有case的情况下总容易生锈,所以工作中遇到了这个钉子,工作不算忙的情况下,想尝试一下能不能简单一点办公,能为在之后可能更复杂的工作场景下积累一点经验。

import os
import xlrd
from shutil import copy

# 将 Excel 文件中的数据读取出来
dst_path = r"C:\第七周 1.3-1.7\1.4 文件复制\保存位置"
dir_path = r"C:\12.2 出口退税、单证备案\运单"
datapath = r"C:\你的 Excel 文件路径"

# 打开 Excel 文件
xl = xlrd.open_workbook(datapath)

# 获取第一个工作表
table = xl.sheet_by_index(0)

# 获取整列的值
id_list = table.col_values(0)

# 获取 dst_path 路径下的所有文件名
file_names = os.listdir(dst_path)

# 遍历每一行数据
for id in id_list:
    # 遍历文件夹中的所有文件
    for file_name in file_names:
        # 如果 Excel 中的数据(即 id)等于文件名
        if id == file_name:
            # 拼接文件的源路径和目标路径
            src = os.path.join(dir_path, file_name)
            dst = os.path.join(dst_path, file_name)

            # 复制文件
            copy(src, dst)

首先读取了 Excel 文件中的数据,然后遍历了每一行数据,并在文件夹中查找是否有匹配的文件名。如果找到了,就拼接出文件的源路径和目标路径,并使用 shutil 的 copy 函数进行复制。