这是我的代码:
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()
吗?我认为只使用相对路径会更清洁,但这也行不通。
答案 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()
(但我还是把它留在那里了)。