修改 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'
我正在尝试编写一个 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'