在目录中按特定模式复制和重命名文件

0 投票
2 回答
1453 浏览
提问于 2025-04-17 13:24

我想要复制一个文件,复制的次数要和那个文件所在文件夹里其他文件的数量一样,然后把所有新复制的文件重命名。

举个例子,假设文件夹里有3个文件,分别是filename1.xls、filename2.xls和filename3.xls。我想要把filename1.xls复制2次(因为文件夹里除了filename1.xls还有2个文件),然后把每个复制出来的文件重命名为filename2.xls和filename3.xls。希望我的问题说得清楚。谢谢,AD

2 个回答

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

注意:如果复制失败,目标文件可能会被损坏。在这种情况下,你可以先复制到一个临时文件,再替换目标文件。

0

嗯……就是先获取目录里有多少个文件,然后把你的文件复制N次,保存成不同的文件。

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

如果我理解你的意思的话。

撰写回答