最近在学习语音的知识,看一个语音合成实现的相关工具包的源代码,碰到了glob()函数。然后开启了我与这个函数相爱想杀的一个下午。
摘自官网解释:
简而言之,这个函数的作用呢就是按照unix shell的规则匹配一定模式的路径名,返回一个无序的列表。
我的代码使用:
from os.path importjoinfrom glob importglobimportnumpy as np
DATA_ROOT= "~/文档/nnmnkwii/nnmnkwii_gallery-master/data/slt_arctic_full_data"files= sorted(glob(join(DATA_ROOT, "merlin_baseline_practice", "duration_data", "label_state_align", "*.lab")))print("{} \n".format(files))for file infiles:print("{} \n".format(file))
我是要用这个代码匹配对应文件夹下的.lab文件,但是明明文件夹下有数据,但是返回的就是个空列表。
关键问题是不要使用相对路径,要使用绝对路径,
上面官网解释也说了,对于~和shell变量使用os.path.expanduser()和os.path.expandvars()扩展。
for