Python基于子文件夹和文件名重命名子文件夹中的文件

2024-10-02 00:24:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件夹,C:\temp,包含如下子文件夹和文件:

\11182014\

VA1122F.A14  
VA9999N.A14  
CT3452F.B13  
CT1467A.B14

\12012014\

MT4312F.B14  
MT4111N.B14  
CT4111F.A12

文件扩展名始终是“.A”或“.B”,后跟2位数字。 文件名总是以“F”、“A”或“N”结尾。在

我想在C:\temp和:

  • 在每个文件前面加上“My_X”,其中X是F、N或A(即文件名中的最后一个字母)

  • 在每个文件后面加上“”+子文件夹的名称

结果是:

^{pr2}$

有什么建议吗?在


Tags: 文件文件夹文件名tempb14b13a12a14
2条回答

    #!/usr/bin/env python
#  -* - coding:utf-8  -* -

import os

path = "/home/username/test"

for root,dirname,filename in os.walk(path):
    for i in filename:
        i = i.split(".")
        first = i[1][0]
        last = i[0][-1]
        print "My_"+last+i[0]+root+"."+i[1]

这就行了

fld = '/Your/path/to/main/folder/'

for root, subdirs, files in os.walk(fld):
    for name in files:
        curr_fld = os.path.basename(root)
        oldname = os.path.join(fld, curr_fld, name)
        splt_name =  name.split('.')
        myname = '_'.join(['My', splt_name[0][-1], splt_name[0], curr_fld + '.' + splt_name[1]])
        newname = os.path.join(fld, curr_fld, myname)
        os.rename(oldname, newname)

相关问题 更多 >

    热门问题