从 CSV 中读取文件名,然后将文件复制到不同的目录 - 第 2 部分

Read filenames from CSV and then copy the files to different directory -part 2

我正在尝试编写一个 python 代码来读取 csv,读取后在目录中查找文件,然后将文件移动到目标文件夹。我正在使用 Python 3.6.

我有同样的问题,在此处的代码中定义:Read filenames from CSV and then copy the files to different directory

我尝试了那里的方法,但是当我 运行 这个代码时它说不是 这样的文件或目录

下面是我修改的代码,在他们使用 agrv 的代码中,但我正在定义路径...

import os
import shutil
import csv
import sys

csv_file = "maharera.csv"
existing_path_prefix = "D:\maharera"
new_path_prefix = "D:\movement"

with open(csv_file, 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        filename = row[0]
        filepath = row[1]

        new_filename = os.path.join(new_path_prefix, filename)
        shutil.copy(filepath, new_filename)

我正在尝试将文件从 d 驱动器移动到驱动器,但在不同的文件夹中,但文件应该与 csv 文件相同..

此处附有 CSVhttps://www.dropbox.com/s/0t9skcuje6jyew1/maharera.csv?dl=0

在 csv 中有两列,一列是文件名,另一列是当前目的地,它们现在保存在哪里...

代码中提到了新的目的地

在您的代码中发现了两个错误。

  1. 您包含了 csv 文件的 header/first 行。

  2. 您正在尝试复制文件的文件夹而不是文件本身。

为避免错误,您可以尝试

with open(csv_file, 'r') as f:
    reader = csv.reader(f)
    for i, row in enumerate(reader):
        if i == 0:
            pass    # Skip header row
        else:
            filename, filepath = row
            new_filename = os.path.join(new_path_prefix, filename)
            old_filename = os.path.join(filepath, filename)
            shutil.copy(old_filename, new_filename)