我的目录中有一些文件,
file_IL.txt
file_IL.csv
file_NY.txt
file_NY.csv
我将不得不重命名它们,以便它们获得序列号.例如,
file_IL.txt_001
file_IL.csv_001
file_NY.txt_002
file_NY.csv_002
我编写了以下Python代码
def __init__(self):
self.indir = "C:\Files"
def __call__(self):
found = glob.glob(self.indir + '/file*')
length = len(glob.glob(self.indir + '/file*'))
print length
count = 000
for num in (glob.glob(self.indir + '/file*')):
count = count + 1
count = str(count)
print count
shutil.copy(num, num+'_'+count)
print num
count = int(count)
但这给了我如下结果
file_IL.txt_001
file_IL.csv_002
file_NY.txt_003
file_NY.csv_004
有人可以帮我修改上面的Python脚本以满足我的要求吗?我是Python的新手,我不确定如何实现它.
解决方法:
最好的方法是将扩展名存储并在字典中对该扩展名进行计数.
def __call__(self):
found = glob.glob(self.indir + '/file*')
length = len(found)
counts = {}
for num in found:
ext = num.rsplit(".",1)[-1] # Right split to get the extension
count = counts.get(ext,0) + 1 # get the count, or the default of 0 and add 1
shutil.copy(num, num+'_'+'%03d' % count) # Fill to 3 zeros
counts[ext] = count # Store the new count
标签:python
来源: https://codeday.me/bug/20191012/1903782.html