如何使用Python获取磁盘所有文件(不含文件夹)及现有代码调整
Windows下Python获取全磁盘文件(过滤文件夹)调整方案
核心调整点
- 原有
os.listdir()仅能获取目标路径下的一级内容,且不会区分文件/文件夹,替换为os.walk()可以递归遍历所有子目录,同时原生拆分出当前目录下的文件夹、文件两类对象 - 补充非Windows系统下的直接退出逻辑,避免后续执行报错
- 拼接根路径和文件名生成文件的绝对路径,方便后续直接使用
调整后完整代码(递归扫描全磁盘所有文件)
import os # 非Windows系统直接提示退出 if os.name != "nt": print("Sorry this script works only on Windows!") exit() # 要扫描的磁盘根路径 root_path = "C:\\" all_files = [] # 递归遍历所有目录 for dirpath, dirnames, filenames in os.walk(root_path): # filenames已经是当前目录下的所有非文件夹文件,直接拼接绝对路径 for filename in filenames: full_file_path = os.path.join(dirpath, filename) all_files.append(full_file_path) # 输出所有文件路径,可根据需要修改后续处理逻辑 for file in all_files: print(file)
可选方案(仅扫描目标路径一级文件,不遍历子目录)
如果不需要扫子目录里的文件,仅过滤目标路径下的一级文件,可以用os.path.isfile()做判断,代码示例:
import os if os.name != "nt": print("Sorry this script works only on Windows!") exit() path = "C:\\" dir_list = os.listdir(path) # 过滤仅保留文件 only_files = [f for f in dir_list if os.path.isfile(os.path.join(path, f))] print(only_files)
内容的提问来源于stack exchange,提问作者Natan
相关产品推荐
相关产品推荐

