Python文件重命名

Python文件重命名,python,Python,我的目录里有一些文件 文件\u IL.txt 文件\u IL.csv 文件\u NY.txt 文件_NY.csv 我将不得不重命名它们,以便它们获得序列号。比如说, 文件\u IL.txt\u 001 文件\u IL.csv\u 001 文件\u NY.txt\u 002 文件\u NY.csv\u 002 我已经编写了以下Python代码 def __init__(self): self.indir = "C:\Files" def __call__(self):

我的目录里有一些文件

文件\u IL.txt
文件\u IL.csv
文件\u NY.txt
文件_NY.csv

我将不得不重命名它们,以便它们获得序列号。比如说,

文件\u IL.txt\u 001
文件\u IL.csv\u 001
文件\u NY.txt\u 002
文件\u NY.csv\u 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)  
但这给了我一个结果如下

文件\u IL.txt\u 001
文件\u IL.csv\u 002
文件\u NY.txt\u 003
文件\u NY.csv\u 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

谢谢只有一个错误,TypeError:unhabable类型:“list”。你能告诉我怎么修吗?它位于count=counts.get(ext,0)处+1@user1345260固定的。只需要正确拉取分机,而不是将
count
转换为字符串。@legostrmtroopr:
length=len(found)
,而不是复制全局调用,是吗?@Edward是的,你可以这样做。我在很大程度上复制了OPs代码,并专注于重新编号。实际上,
found
甚至没有在代码中使用。我已经修复了代码,但将
found
保留在中,因为它可能对OP有用。我建议
ext=os.path.splitext(num)[1]