os.listdir()不显示目录的内容

时间:2020-02-05 18:06:39

标签: python python-3.x

这是我的代码:

files = [f for f in os.listdir(os.getcwd() + "\\folder") if os.path.isfile(f)]
for file in files:
    print("hello")

我正在从包含名为“文件夹”文件夹的目录中运行此文件。此文件夹中有4个文件。这应该在我的头上打印四次“你好”,但事实并非如此。

我误解了什么?

PS我需要在这里使用os.getcwd()吗?我认为只使用相对路径会更清洁,但这也行不通。

1 个答案:

答案 0 :(得分:5)

使用os.path.isfile(f)时,您要询问f是否是您当前目录内的文件 ,而不是folder内的文件。将代码替换为:

[f for f in os.listdir(os.path.join(os.getcwd(), "folder")) if os.path.isfile(os.path.join("folder", f))]

我还自由地使用os.path.join来避免将文件名和文件夹名直接串联为字符串,因为斜杠可能有点麻烦。

为了记录,没有,您不需要在这里使用os.getcwd()(但我还是把它留在那里了)。

相关问题