如何用Python检测主文件夹下与Subfolder同级的文件是否存在?
问题:检查主文件夹下是否存在与Subfolder同级的文件
文件夹结构示例:
Main folder -- file1.xlsx file2.xlsx Subfolder
请问如何检查主文件夹下与Subfolder同级的位置是否存在文件?
我曾使用以下代码:
os.path.exists("Main folder")
但即使主文件夹下只有Subfolder、无其他文件时,该代码仍返回True,请问有没有方法可以判断主文件夹下与Subfolder同级的位置是否无文件?
解决方案
os.path.exists()仅判断目标路径是否存在,不管里面是文件还是文件夹,所以无法满足需求。要筛选出主文件夹下的普通文件(排除子目录),可以用以下方法:
方法一:遍历筛选普通文件
import os def has_sibling_files(main_dir): # 遍历主目录下所有条目 for item in os.listdir(main_dir): item_path = os.path.join(main_dir, item) # 判断当前条目是否为普通文件 if os.path.isfile(item_path): return True return False # 调用示例 main_folder = "Main folder" if has_sibling_files(main_folder): print("主文件夹下存在与Subfolder同级的文件") else: print("主文件夹下没有与Subfolder同级的文件")
方法二:简洁的生成器表达式写法
如果想要更紧凑的代码,可以用生成器表达式结合any()函数快速判断:
import os main_folder = "Main folder" has_files = any(os.path.isfile(os.path.join(main_folder, item)) for item in os.listdir(main_folder)) print("存在同级文件" if has_files else "无同级文件")
原理说明:os.listdir()会返回目标文件夹内的所有名称(包括文件和子目录),os.path.isfile()用于判断当前路径是否为普通文件,只要有一个符合条件,any()就会返回True,说明存在同级文件。
内容的提问来源于stack exchange,提问作者William
相关产品推荐
相关产品推荐

