在python字典中修改密钥的名称

时间:2015-07-11 04:37:56

标签: python dictionary shutil python-os

我正在尝试编写一个python脚本,以便在父目录中找到所有sub_directories 'something'。然后我想重命名sub directories并将它们移到其他地方。到目前为止,我的代码为:

import os, shutil,fnmatch

match = {}
for root, dirnames, filenames in os.walk('test'):
    #print root
    #print dirnames
    #print filenames
    for i in fnmatch.filter(dirnames,'find'):
        #print os.path.join(root,dirnames[0])
        print root
        #match.append(root)
        match[root]=dirnames[0]

来电匹配给我{'test\a': 'find'......}之类的东西。我想修改字典的键值,使其看起来像{'a':'find'...,所以基本上我试图摆脱父目录的名称。我想过转换为字符串并使用拆分但似乎效率不高。

1 个答案:

答案 0 :(得分:0)

要获取不含dirname目录名的parent,请使用os.path.basename,这样:

>>> dirname = 'C:\\Users\\myUsers\\Videos'
>>> os.path.basename(dirname)
'Videos'

编辑:回应OP评论,

假设:

dirname = 'C:\\Users\\myUsers\\Videos'

并且您希望将新文件夹名称设为myUsers_Videos,这是一种方式:

>>> os.path.basename('_'.join(os.path.split(dirname)))
'myUsers_Videos'