我有一个带文件的dict:
files = {
"/test/path/file1.c": "NotImportant",
"/test/path/file2.c": "NotImportant",
"/other/path/filex.c": "NotImportant",
"/different/path/filez.c": "NotImportant"
}
我现在有一个dict,例如path = '/test/path/'
,我想看看哪个文件在这个特定的路径中。我试过
if path in files:
print("found")
然而,这对我不起作用。我通过遍历每个文件并使用相同的语句进行检查的循环来解决这个问题。还有别的办法解决吗?
我的解决方案:
for file in files:
if path in file:
print("found")
为什么这个声明在这里有效而在以前无效?我想要一个更好的解决方案,而不是在整个文件上循环。
您可以使用正则表达式来匹配路径。
例如:
path_pattern = "^{}/.*".format(path)
for file in files:
if re.match(path_pattern, file):
print("Found")
正如DeepSpace所说:您的元素都不是字典。
第一个元素实际上是一个集合,第二个元素只是一个字符串,而Python字典是一个与值相关的键列表(就像一个单词与真实字典中的定义相关(。
其次,最佳做法是:您必须查看文件中每个文件的路径名,以检查每个文件中是否存在path='/test/path/'。
就像人类一样!
所以这是个好方法!