在目录中按特定模式复制和重命名文件
我想要复制一个文件,复制的次数要和那个文件所在文件夹里其他文件的数量一样,然后把所有新复制的文件重命名。
举个例子,假设文件夹里有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
如果我理解你的意思的话。