Python 基于查找表字符串匹配生成子目录
如何在那些目录中创建只与查找表中的字符串相匹配的子目录。使用Python 基于查找表字符串匹配生成子目录,python,python-3.x,Python,Python 3.x,如何在那些目录中创建只与查找表中的字符串相匹配的子目录。使用os.path.join是否可行 例如,在那些以=d5、=g7或=a9结尾的cwd目录中,应该创建两个目录:\u raw\u files和\u sup\u files。如何根据查找表字符串(例如,config['g7'])指向os.path.join使其成为 创建目录之前和之后的结构: CWD 01_camdirab=d5
os.path.join
是否可行
例如,在那些以=d5
、=g7
或=a9
结尾的cwd目录中,应该创建两个目录:\u raw\u files
和\u sup\u files
。如何根据查找表字符串(例如,config['g7']
)指向os.path.join
使其成为
创建目录之前和之后的结构:
CWD
01_camdirab=d5 #<--create new dirs inside this
/subdirs/.nef,.jpg,.avi
02_camdirxyz=g7 #<--create new dirs inside this
/subdirs/.cr2,.jpg,.mp4
03_camdire012345=a9 #<--create new dirs inside this
/subdirs/.mp4,.jpg,.avi
04_camdire012345 #<--DO NOT create new dirs inside (no string) this
/subdirs/.mp4,.jpg,.avi
CWD
01_camdirab=d5
/_raw_files
/_sup_files
/subdirs/.nef,.jpg,.avi
02_camdirxyz=g7
/_raw_files
/_sup_files
/subdirs/.cr2,.jpg,.mp4
03_camdire012345=a9
/_raw_files
/_sup_files
/subdirs/.mp4,.jpg,.avi
04_camdire012345
/subdirs/.mp4,.jpg,.avi
试试这个:
def createDir(path):
if not os.path.exists(path):
os.mkdir(path)
import os
cwd = os.getcwd()
config = {
'g7': {},
'd5': {},
'a9': {},
}
config['g7']['append_dir_to_filename'] = 1
config['g7']['device_name'] = 'Canon-G7'
config['g7']['raw_file'] = ('cr2', 'jpg', 'mp4')
config['d5']['append_dir_to_filename'] = 1
config['d5']['device_name'] = 'Nikon-D5'
config['d5']['raw_file'] = ('nef', 'jpg', 'avi')
config['a9']['append_dir_to_filename'] = 1
config['a9']['device_name'] = 'Sony-alpha-a9'
config['a9']['raw_file'] = ('mp4', 'jpg', 'avi')
dirs_name = os.listdir(cwd)
for dir_name in dirs_name:
for key_word in config:
if dir_name.endswith(key_word):
_raw_files = os.path.join(cwd, dir_name, r'_raw_files')
_sup_files = os.path.join(cwd, dir_name, r'_sup_files')
createDir(_raw_files)
createDir(_sup_files)
请张贴您的愿望输出。函数os.listdir可能有帮助。使用输出更新。谢谢,谢谢。我正在尝试,但出现了错误(我的错误):
namererror:name'config'未定义
。如何使脚本识别此查找表?我在原始问题中插入了我正在运行的代码。你来裁决!工作起来很有魅力!非常感谢。
def createDir(path):
if not os.path.exists(path):
os.mkdir(path)
import os
cwd = os.getcwd()
config = {
'g7': {},
'd5': {},
'a9': {},
}
config['g7']['append_dir_to_filename'] = 1
config['g7']['device_name'] = 'Canon-G7'
config['g7']['raw_file'] = ('cr2', 'jpg', 'mp4')
config['d5']['append_dir_to_filename'] = 1
config['d5']['device_name'] = 'Nikon-D5'
config['d5']['raw_file'] = ('nef', 'jpg', 'avi')
config['a9']['append_dir_to_filename'] = 1
config['a9']['device_name'] = 'Sony-alpha-a9'
config['a9']['raw_file'] = ('mp4', 'jpg', 'avi')
dirs_name = os.listdir(cwd)
for dir_name in dirs_name:
for key_word in config:
if dir_name.endswith(key_word):
_raw_files = os.path.join(cwd, dir_name, r'_raw_files')
_sup_files = os.path.join(cwd, dir_name, r'_sup_files')
createDir(_raw_files)
createDir(_sup_files)