Python 将文件重命名为文件夹名称的一部分

Python 将文件重命名为文件夹名称的一部分,python,operating-system,rename,Python,Operating System,Rename,我有多个文件夹,看起来像文件夹.0和文件夹.1。 每个文件夹中都有一个文件('junk'),我想将其复制并重命名为当前所在文件夹名称的.0或.1部分。 以下是我想做的: inDirec = '/foobar' outDirec = '/complete/foobar' for root, dirs,files in os.walk(inDirec): for file in files: if file =='junk' d = os.path

我有多个文件夹,看起来像
文件夹.0
文件夹.1
。 每个文件夹中都有一个文件(
'junk'
),我想将其复制并重命名为当前所在文件夹名称的
.0
.1
部分。
以下是我想做的:

inDirec = '/foobar'
outDirec = '/complete/foobar'


for root, dirs,files in os.walk(inDirec):
    for file in files:
        if file =='junk'
            d = os.path.split(root)[1]
            filename, iterator = os.path.splitext(d)  # folder no. captured
            os.rename(file, iterator+file) # change name to include folder no.
            fullpath = os.path.join(root,file)
            shutil.copy(fullpath,outDirec)
这将返回:

os.rename(file,iterator+file)
OSError: [Errno 2] No such file or directory
我甚至不确定我是否应该使用os.rename。我只想取出
文件==“垃圾”
并将它们复制到一个目录中,但它们都有完全相同的名称。所以我真的需要重命名它们,这样它们就可以存在于同一个目录中。有什么帮助吗

更新
您的问题是,您的程序在启动时正在使用工作目录进行重命名操作。您需要提供完整的相对或绝对路径作为os.rename()的参数

替换:

os.rename(file, iterator+file)
fullpath = os.path.join(root,file)
shutil.copy(fullpath,outDirec)
使用(如果要移动):

或使用(如果要复制):


注意:目标目录应该已经存在,否则您需要代码来创建它。

谢谢。存在的目标目录=
outDirec
。但是,当尝试后一行时,我得到了
IOError:[Errno 20]不是一个目录:
@KennyC是
完整的
,正如您的示例所示,它实际上位于文件系统的根(
/
)上?我不确定我是否在跟踪您
outDirec
是我试图复制文件的目录的完整文件路径尝试在执行shutil.copy之前立即打印这两个路径,并验证它们是否正确。好的,我解决了文件路径问题,但
迭代器
似乎没有附加到文件路径。我得到这个错误:
shutil.error:“junk”和“junk”是同一个文件
os.rename(file, iterator+file)
fullpath = os.path.join(root,file)
shutil.copy(fullpath,outDirec)
os.rename(os.path.join(root, file), os.path.join(outDirec, iterator+file))
shutil.copy(os.path.join(root, file), os.path.join(outDirec, iterator+file))