修改 python 字典中的键名

modifying key's name in python dictionary

我正在尝试编写一个 python 脚本,以便我可以在父 directory.Then 中找到所有名为 'something'sub_directories 我想重命名 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]

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

要获得没有 parent 目录名称的 dirname,请使用 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'