Python实现遍历指定路径下的文件打印并加入列表

本文介绍了一个使用Python编写的简单脚本,该脚本能够遍历指定目录下的所有文件,并将每个文件的完整路径存储在一个列表中。通过递归的方式,此脚本可以深入到子文件夹中,收集所有层级的文件路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接上程序

# -*- coding: utf-8 -*-

import os

file_path_list = []# 列表用于存放路径

def traverse(folder_path):
    fp = os.listdir(folder_path)
    for file in fp:
        tmp_path = os.path.join(folder_path,file)# string 当前路径下的文件
        file_path_list.append(tmp_path)# 将每条路径加入列表

path = 'G:/Visual studio/ShipC'
traverse(path)
print(file_path_list)

input("press any key to quit...")
### Python 遍历目录进入路径的方法 在 Python 中,可以通过多种方式实现文件系统的遍历路径切换。以下是基于 `os` 模块和 `pathlib` 模块的具体方法。 #### 使用 `os` 模块遍历目录切换路径 `os` 模块提供了基本的操作系统接口功能,能够完成诸如更改工作目录的任务。下面是如何使用 `os` 模块来遍历目录切换到目标路径的示例: ```python import os def traverse_and_change_directory_os(root_dir): for dir_name, subdir_list, file_list in os.walk(root_dir): print(f'Found directory: {dir_name}') try: os.chdir(dir_name) # 切换到当前目录 print(f'Switched to directory: {os.getcwd()}') except Exception as e: print(f"Failed to change directory: {e}") # 调用函数 traverse_and_change_directory_os('.') ``` 上述代码利用了 `os.walk()` 函数递归地访问指定根目录下的所有子目录及其文件列表[^2]。每次迭代都会尝试通过 `os.chdir()` 方法切换至当前正在处理的目录,并打印确认消息。 --- #### 使用 `pathlib` 模块遍历目录切换路径 相比传统的 `os` 和 `os.path` 模块,`pathlib` 提供了一个更加直观的对象化接口来进行路径操作。下面是采用 `pathlib` 实现相同需求的例子: ```python from pathlib import Path def traverse_and_change_directory_pathlib(root_dir): root_path = Path(root_dir).resolve() # 获取绝对路径 for subpath in root_path.rglob('*'): if subpath.is_dir(): print(f'Directory found: {subpath}') try: os.chdir(str(subpath)) # 注意这里仍然需要借助 os.chdir() print(f'Switched to directory: {Path.cwd()}') except Exception as e: print(f"Failed to switch directory: {e}") # 调用函数 traverse_and_change_directory_pathlib('.') ``` 在这个例子中,`rglob('*')` 是一种非常强大的通配符匹配工具,它可以找到给定模式下所有的文件和目录[^4]。尽管 `pathlib` 自身不支持直接改变当前的工作目录,但它可以很好地与其他标准库配合使用以达到目的。 需要注意的是,在实际应用过程中可能遇到权限不足等问题导致无法成功切换某些特定目录的情况,因此建议加入异常捕获机制以便更好地调试程序运行状态。 --- ### 总结对比两种方案的特点 - **易读性和简洁度**: 对于新手开发者来说,`pathlib` 更加友好且易于理解;而对于熟悉传统 C/C++ API 的工程师而言,则可能会觉得 `os` 系列更亲切一些。 - **功能性扩展性**: 当涉及复杂逻辑或者跨平台兼容考虑时,推荐优先选用 `pathlib` ,因为其设计哲学本身就倾向于解决这类问题[^1]。 无论选择哪种方式,都需要考虑到具体应用场景的需求以及团队成员的技术背景等因素综合判断最佳实践方向。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值