os.listdir() 列出数据文件但相应断言失败

os.listdir() lists data files but the corresponding assertion fails

我有以下代码会引发断言错误。 os.listdir() 列出了我的数据文件,但仍然存在断言错误。

import os
PATH_TO_FOLDER = 'LOCAL PATH TO MY DATA'
assert 'data' in os.listdir(PATH_TO_FOLDER)
import sys
sys.path.append('..')

断言错误源于行

assert 'data' in os.listdir(PATH_TO_FOLDER)

如果该行是故意的,断言将失败,因为在您的 PATH_TO_FOLDER 目录中不存在名为 'data' 的目录或文件。

我问的是 'data' in os.listdir(PATH_TO_FOLDER) 语句的计算结果。这返回了 False。

知道这一点后我可以告诉你,assert 按预期工作。断言是布尔表达式,取决于您的语句 'data' in os.listdir(PATH_TO_FOLDER) 是 True 还是 False。如果它是 True,则什么也不会发生,您的代码将跳到下一行。如果为 False,它会引发 AssertionError。断言旨在检查是否满足某些先决条件。

回到您的问题:如果您确保您的路径正确并且那里有一个名为 data 的文件夹,则错误将停止发生。另请注意,os.listdir() 不会递归检查子文件夹。