您的位置:

用Python复制文件并重命名

一、Python复制文件

Python中可使用shutil库来完成文件、文件夹的复制。shutil模块提供了2个方法:

shutil.copy( src_file,dst_file )
shutil.copyfile( src_file,dst_file )

在使用时,只需为源文件src_file和目标文件dst_file提供正确的路径即可。

其中,shutil.copy()方法会将权限和修改时间一并复制,并返回一个目标文件的路径。

shutil.copyfile()方法只复制文件内容,不会复制权限和修改时间。

下面是一个例子,将单个文件从一个路径复制到另一个路径:

import shutil

src = 'D:/test/test1/test.txt'
dst = 'D:/backup/backup.txt'

shutil.copy(src, dst)

二、Python重命名文件

使用Python重命名文件也十分简单,只需使用os库中的rename方法,将需要重命名的文件路径和修改后的文件名作为参数即可。

import os

oldname = "D:/backup/backup.txt"
newname = "D:/backup/newbackup.txt"

os.rename(oldname, newname)

使用上述代码将backup.txt重命名为newbackup.txt。如果文件所在目录和文件名不变,可以使用os.path.join()函数:

import os

path = 'D:/backup'

for file in os.listdir(path):
    if os.path.isfile(os.path.join(path, file)):
        if 'backup' in file:
            os.rename(os.path.join(path, file), os.path.join(path, file.replace('backup', 'newbackup')))

上述代码中,将备份目录中所有文件名中包含“backup”字符串的文件都重命名为新的名称“newbackup”。

三、用Python复制并重命名文件

结合前两步,我们就可以使用Python复制文件并重命名了。下面是一个具体的例子,将test中所有文件都复制到backup目录,并同时重命名为“fileX_backup”(其中X为数字):

import os
import shutil

i = 1
src = 'D:/test'
dst = 'D:/backup'

for file in os.listdir(src):
    if os.path.isfile(os.path.join(src, file)):
        if 'file' in file:
            shutil.copy(os.path.join(src, file), os.path.join(dst, 'file{}_backup'.format(i)))
            i += 1
        else:
            shutil.copy(os.path.join(src, file), dst)

上述代码中,通过遍历test目录中所有的文件,将包含“file”字符串的文件进行重命名后复制到backup目录中,其他文件直接复制到backup目录中。