在将文件复制到新目标时,带有父文件夹名称的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。加入吧。任何帮助都是感激的。由于

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

from shutil import copyfile
copyfile(os.path.join(path , file),os.path.join(dest , file))
阅读你的代码,我想知道为什么有"//"。通常是"/"是足够的,但你不需要担心,使用os.path.join

最新更新