如何根据 Python 中文件名中的数字更改文件扩展名

How do I change file extension based on the number in a file name in Python

我有一些文件存储在一个主目录中,扩展名为 .map 是模型的输出。文件名包括模型的时间步长。

例如:P_1_.mapP_2_.mapP_10_.map分别是模型第1、2、10个时间步的输出。

文件的扩展名必须更改为与时间步长相对应的三位数。我需要将 .map 扩展名更改为 .001.002.010

最后,我想将所有文件名更改为相同的名称,比如“Ptest”。最后,旧文件应该像这样更改: P_1_.mapPtest.001

P_2_.mapPtest.002

P_10_.mapPtest.010

有人知道如何在 Python 中执行此操作吗?任何帮助将不胜感激:)

import os

for name in os.listdir(): # look through the entire directory
    # break up the name so we can work with it
    parts = name.split('_')
    # skip non-matching files
    if len(parts) != 3: continue
    if parts[0] != 'P' or parts[2] != '.map': continue
    # figure out the new name
    newname = "Ptest.%03d" % int(parts[1])
    # do the rename
    os.rename(name, newname)