1

我有一个文件夹 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(即文件名中的最后一个字母)

  • 每个文件后缀为“_”+子文件夹的名称

结果将是:

\11182014\

My_F_VA41245F_1182014.A14  
My_N_VA43599N_1182014.A14  
My_F_CT41111F_1182014.B13  
My_A_CT41112A_1182014.B14  

\12012014\

My_F_MT4312F_12012014.B14  
My_N_MT4111N_12012014.B14  
My_F_CT4111F_12012014.A12 

有什么建议么?

4

2 回答 2

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)
于 2016-09-15T06:29:06.657 回答
0
    #!/usr/bin/env python
# ---*--- 编码:utf-8 ---*---

导入操作系统

路径 = "/home/用户名/测试"

对于 os.walk(path) 中的根目录、目录名、文件名:
    对于我在文件名中:
        i = i.split(".")
        第一个 = i[1][0]
        最后 = i[0][-1]
        打印 "My_"+last+i[0]+root+"."+i[1]

于 2015-07-15T17:20:20.860 回答