【发布时间】:2020-08-08 13:52:05
【问题描述】:
这看起来很简单,但我不知道出了什么问题。
首先我收集一个目录中与特定字符串匹配的所有文件名的列表:
import os
import glob
dl = glob.glob('dir/*abc*')
for f in dl:
fn = os.path.basename(f)
所以现在我有一个文件名列表fn,其中包含"abc"。到目前为止一切顺利。
我想要做的是浏览这个文件名列表,尝试将它们与字典中的一组键进行匹配,只要有匹配项,就打印出该匹配键对应的字典值。
这就是我所做的:
fn_dict = {"abc.txt": "val1", "abc123.txt": "val2", "def.txt": "val3"}
for i in fn:
if i in fn_dict.keys():
print(fn_dict.get(i))
else:
print("No match")
我希望得到"val1" 和"val2",但我只会一遍又一遍地得到"No match"。
【问题讨论】:
-
我可以建议在您的最小复制中,对变量 fn 的值进行硬编码。这样其他人就可以运行代码了。
标签: python python-3.x dictionary lookup