一、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目录中。