Python中os.path.isdir返回值在if语句中使用错误致文件夹操作异常
问题分析与代码修正
核心错误点
- 未调用
os.path.isdir函数:你写的Exists = os.path.isdir只是把函数本身赋值给变量,既没传入要检查的文件夹路径,也没执行函数。后续if Exists == True是在判断函数对象是否等于布尔值,这永远不成立,直接导致逻辑完全走偏。 - 条件逻辑颠倒:把文件夹存在/不存在的操作写反了——
os.path.isdir返回True代表文件夹存在,应该执行删除再新建;返回False才是文件夹不存在,直接新建即可。 - 硬编码路径隐患:代码里写死了用户路径,换设备运行必然报错,建议用动态路径替代。
修正后的代码
import os import requests from bs4 import BeautifulSoup # 动态获取桌面路径,适配不同系统 desktop_path = os.path.expanduser("~/Desktop") os.chdir(desktop_path) target_folder = "Produced Video" # 调用函数并传入目标路径,得到正确的布尔判断结果 folder_exists = os.path.isdir(target_folder) if folder_exists: print("Folder exists! Deleting it :3") os.rmdir(target_folder) os.mkdir(target_folder) else: print("This folder does not exist! We will create it :D") os.mkdir(target_folder) # 后续要进入文件夹时,先判断存在再操作,避免报错 if os.path.isdir(target_folder): os.chdir(target_folder)
补充说明
错误信息里的os.chdir报错,是因为你尝试进入不存在的文件夹。修正后的代码增加了判断逻辑,确保文件夹存在后再切换目录;同时用os.path.expanduser("~/Desktop")自动适配Windows/macOS/Linux的桌面路径,比硬编码更通用。
内容的提问来源于stack exchange,提问作者Joshua
相关产品推荐
相关产品推荐

