首页 > 解决方案 > 将文件复制到新目标时,带有父文件夹名称的 Python 前缀文件名

问题描述

我感谢任何帮助我的人,我对编程和 Python 非常陌生。我的情况是我有一些文件位于不同的子文件夹中。我想将文件复制到新的目的地,但在复制的文件名前加上源父文件夹或祖父文件夹名称。我下面的代码复制文件没有问题:

import os
import shutil

source = r'/Volumes/Folder1' + '//'
dest = r'/Volumes/Folder2' + '//'

for path, dir, files in os.walk(source):
    for file in files:

        if "red" in file.lower():
            shutil.copy2(path + '//' + file, dest + file)

但是当我尝试将源文件夹名称添加到现有代码中时,如下所示,出现错误:

for file in files:
  foldername = path.split("//")[-1]
    if "red" in file.lower():
        shutil.copy2(path + '//' + file, dest + file)

我知道我没有以正确的方式去做这件事,我觉得我必须使用 os.join 或其他东西。任何帮助表示赞赏。谢谢

标签: pythonpython-3.x

解决方案


我为你做了一个简单的代码:

from shutil import copyfile
copyfile(os.path.join(path , file),os.path.join(dest , file))

阅读您的代码,我想知道为什么会有“//”。通常一个“/”就足够了,但你不必担心,使用os.path.join


推荐阅读