如何根据0
或1
值以及存储在查找表中的fileextension 将父目录的名称附加到文件名中?
=camID
结尾的目录,然后:
append_dir_to_filename
是0
:什么都不做append_dir_to_filename
是1
:那么:camID
内部以递归方式查找为raw_file
列出的所有以camID
扩展名结尾的文件,然后:raw_file
文件名raw_files
目录中的camID
dir(即不在camID
子网站中)CWD
01_camdirab=d5
/aaa/ .nef,.jpg,.avi,.wav
02_camdirxyz=g7
/bbb/ddd/ .cr2,.jpg,.mp4
03_camdire012345=g7
/yyy/kkk/xxx/ .mp4,.jpg,.avi,.thm
04_camdire012345
/ .mp4,.jpg,.avi
CWD
01_camdirab=d5
/aaa/aaa_.nef, aaa_.jpg, aaa_.avi, .wav #appended raw files
02_camdirxyz=so
/bbb/ddd/.cr2,.jpg,.mp4 #not appended, 'append_dir_to_filename'] = 0
03_camdire012345=a9
/yyy/kkk/xxx/ xxx_.mp4, xxx_.jpg, xxx_.avi, .thm #appended raw files
04_camdire012345
/.mp4,.jpg,.avi #do not appended, dir not in lookup,
做不前缀dir名称。文件名之前和之后:
cameraDirs = [os.path.join(cwd, x) for x in next(os.walk(cwd))[1] if x[-2:] in config['append_dir_to_filename']]
for cameraDir in cameraDirs:
cameraShortName = cameraDir[-2:]
for rootDir, _, files in os.walk(cameraDir):
prefix = os.path.basename(rootDir)
for file in files:
if (any(x for x in config[cameraShortName] if file.endswith(x)) and prefix[-2:] not in config['append_dir_to_filename']):
os.rename(os.path.join(rootDir, file), os.path.join(rootDir, "{}_{}".format(prefix, file)))
代码(如果查找表具有不同的结构[首先是对象,然后是键],则效果非常好,但我需要更改为下面的查找表结构。
config = {
'g7': {},
'd5': {},
'so': {},
}
#g7, d5, so called "camID"
config['g7']['append_dir_to_filename'] = 1 #set to 1, append dir name
config['g7']['raw_file'] = ('cr2', 'jpg', 'mp4') #files to append
config['d5']['append_dir_to_filename'] = 1 #set to 1, append dir name
config['d5']['raw_file'] = ('nef', 'jpg', 'avi') #files to append
config['so']['append_dir_to_filename'] = 0 #set to 0, do not append dir name
config['so']['raw_file'] = ('mp4', 'jpg', 'avi') #files to append
查找表:
=d5
换句话说,我想从选择相机(但不是所有相机)附加选择照片和视频文件类型(但不包括其他文件类型)的目录名称)。有关哪些文件和要添加的摄像机的信息位于查找表中。
例如(从不同摄像机类型的存储卡中排序媒体文件):如果目录以... raw_file
(或查找表中的任何其他内容)结尾,然后,根据查找表, ... nef, jpg, avi
目录中的所有=d5
(dirname_origfilename.nef
)文件名将附加1级父目录名称,如['append_dir_to_filename'] = 0
。如果是=d5
,则不要附加目录名称。一个例外:如果文件位于以... =g7
(或=so
或from flask_login.utils import current_user
class MyView(ModelView):
@expose('/')
def index(self):
return self.render('admin/index.html')
def is_accessible(self):
return current_user.is_authenticated()
# admin management setup
admin.add_view(MyView(User, db.session))
admin.add_view(MyView(Post, db.session))
path = op.join(os.path.abspath(__file__ + "/../../"), 'static') # need to get parent path of this code
admin.add_view(FileAdmin(path, '/static/', name='Static Files'))
...)结尾的目录中,则不要附加。