如何解决glob 语法不按预期工作[] *
- Keras_entity_20210223-2138.h5
- intent_tokens.pickle
- word_entity_set_20210223-2138.pickle
- LSTM_history.h5
我使用了代码:
NER_MODEL_FILEPATH = glob.glob("model/[Keras_entity]*.h5")[0]
它工作正常,因为 NER_MODEL_FILEPATH 是一个仅包含该 Keras_entity 文件路径的列表。不选择其他 .h5 文件。
但是当我使用此代码时:
WORD_ENTITY_SET_FILEPATH = glob.glob("model/[word_entity_set]*.pickle")[0]
它没有按预期工作,而不是只拿起那个 word_entity_set 文件, 此列表包含这两个泡菜文件。 为什么会发生这种情况?
解决方法
只需删除方括号:word_entity_set*.pickle
每个the docs:
[seq]
匹配 seq
所以word_entity_set_20210223-2138.pickle
匹配是因为它以w
开头,而intent_tokens.pickle
匹配是因为它以i
开头。
明确地说,它按预期工作。您的期望不正确。
,您的代码选择了 intent_tokens.pickle 和 word_entity_set_20210223-2138.pickle,因为您的 glob 不正确。将全局更改为 "word_entity_set*.pickle"
当您使用 [<phrase>]*.pickle
时,您是在告诉 globber 匹配 <phrase>
中的任何一个字符加上任何字符,再加上 ".pickle"
。所以“wordwordword.pickle”会匹配,所以会:
- www.pickle
- .pickle
- w.pickle
但是
- xw.pickle
- foobar.pickle
不会。
确实有无限的排列。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。