python - glob 语法未按预期工作([ ] *)
问题描述
我有一个包含 4 个文件的文件夹。
- 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
根据文档:
[seq]
匹配 seq中的任何字符
所以word_entity_set_20210223-2138.pickle
匹配是因为它以 a 开头w
,并且intent_tokens.pickle
匹配是因为它以 a 开头i
。
需要明确的是,它按预期工作。你的期望是不正确的。
推荐阅读
- dart - java.lang.IllegalStateException: 回复已提交是否有解决方案
- oracle-sqldeveloper - 从 SQL Developer 连接到 XEPDB1
- javascript - forEach 循环返回未定义的值
- php - 如何在此代码中使用 Session。无法理解
- angular - ngxs 有选择地序列化数组中的属性
- c# - 无法设置所选值
- javascript - 我可以在javascript中触发点击window.printer页面吗?
- android - setOnCreatePreferencesChangeListener 类型不匹配
- html - 请告诉我为什么 highlight.js 不起作用
- ios - 在通过 Xcode 调试构建时,在 firebase crashlytics 控制台上可以看到崩溃,但在通过 Jenkins 创建的企业构建上看不到