Python 名称';listdir';没有定义

Python 名称';listdir';没有定义,python,listdir,Python,Listdir,我一直试图在google colab上运行这个单元,但每次它都说“listdir”没有定义。在运行此单元格之前,我已在上一个单元格中导入了“os”。有人能帮我找到这里的错误吗 images = [(train_image_dir+f) for f in listdir(train_image_dir) if isfile(join(train_image_dir, f))] masks = [(train_image_dir_l+f) for f in listdir(train

我一直试图在google colab上运行这个单元,但每次它都说“listdir”没有定义。在运行此单元格之前,我已在上一个单元格中导入了“os”。有人能帮我找到这里的错误吗

    images =  [(train_image_dir+f) 
for f in listdir(train_image_dir) 
if isfile(join(train_image_dir, f))]
masks = [(train_image_dir_l+f) 
for f in listdir(train_image_dir_l) 
if isfile(join(train_image_dir_l, f))]

df = pd.DataFrame(np.column_stack([images, masks]), columns=['images', 'masks'])

不要调用
listdir()
,而是调用
os.listdir()
。有点不清楚您试图从缩进中实现什么,但是您需要指出所有这些函数都来自哪个包,除非您专门导入每个函数。如上@E.Serra所述,以下任一选项均有效:

from os import listdir, isfile
from os.path import join
或:


mate,导入os.listdir,然后将其称为ass listdir,或者导入os,然后将其称为os.listdir导入模块不会自动使其所有功能直接可见。您仍然需要使用它的模块名来引用它:
os.listdir()
请正确格式化代码,它是非常不可访问的,或者您可以从os导入中
*
,但这是污染名称空间的好方法。
import os

# later in code...
os.listdir(directory)
os.path.join("string1", "string2")
os.isfile(file)