以特定模式复制和重命名目录中的文件

时间:2013-01-23 13:14:02

标签: python

我想复制一个位于目录中的文件,该文件等于该目录中其他文件的次数,然后重命名所有新文件。

例如,目录中有3个文件,filename1.xls,filename2.xls和filename3.xls。我想复制Filename1.xls 2次(因为目录中有2个文件,不包括filename1.xls),然后将每个复制的文件重命名为filename2.xls和fiilename3.xls。希望我的问题很明确。谢谢,AD

2 个答案:

答案 0 :(得分:0)

hm ...只需获取目录中的文件数量,将文件复制N次并将其保存为

for number in range(amount):
    "feliname%r.xls" % number

如果我理解你的意思

答案 1 :(得分:0)

替换名称以"F"开头并且与命令行中给出的文件相邻的所有文件的内容及其副本:

#!/usr/bin/env python
import os
import shutil
import sys

filename = sys.argv[1] # provide file you want to multiply
dirname, basename = os.path.split(filename)
for name in os.listdir(dirname):
    path = os.path.join(dirname, name)
    #note: os.path.normcase() might be required to compare names
    if name.startswith("F") and name != basename and os.path.isfile(path): 
       shutil.copy2(filename, path) #note: some metadata is not copied

注意:如果复制失败;目标文件可能会被销毁。在更换目标之前,您可以先复制到临时文件。