這是我的代碼: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 回答

繁星coding
TA貢獻1797條經驗 獲得超4個贊
隨著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()
這里使用(但我還是把它留在那里了)。
添加回答
舉報
0/150
提交
取消