热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

递归(pythonjava)

一、背景递归就是自己调用自己。这里举一个递归的应用场景。在一个文件夹内,包含多个子文件和子文件夹。每个子文件夹内,又包含文件和文件夹。要求打印一个

一、背景

递归就是自己调用自己。这里举一个递归的应用场景。

在一个文件夹内,包含多个子文件和子文件夹。每个子文件夹内,又包含文件和文件夹。

要求打印一个文件夹内所有的文件路径。

-------实现思路:

1、获取跟目录下,所有的文件和文件夹

2、对获取的内容进行判断,是文件,则直接打印,是文件夹的话,再次调用本方法。(获取文件夹下的文件,文件夹)


二、python --不使用递归

使用os模块

import os
root_path = "/Users/zhaohui/PycharmProjects/MyTest"
def print_all_files(file_path: str):
for root, dirs, files in os.walk(file_path):
for file_name in files:
print(os.path.join(root, file_name))
if __name__ == '__main__':
print_all_files(root_path)

打印结果

/Users/zhaohui/PycharmProjects/MyTest/study/__init__.py
/Users/zhaohui/PycharmProjects/MyTest/study/err_raise.py
/Users/zhaohui/PycharmProjects/MyTest/study/test_cs_1.py
/Users/zhaohui/PycharmProjects/MyTest/study/err_1.py

三、python --使用递归

注意: 获取目录下的文件夹和文件

使用

os.scandir() # 这个效率更高

os.listdir()

import os
def print_all_files(root_path: str):
for o in os.scandir(root_path):
if o.is_file():
print(o.path)
elif o.is_dir():
print_all_files(o.path)
if __name__ == '__main__':
path = "/Users/zhaohui/PycharmProjects/MyTest"
print_all_files(path)

四、java递归实现,打印文件夹下所有的文件

import java.io.File;
public class FileDemo2 {
public static void main(String[] args) {
// File file=new File("d:\\test");
File file=new File("D:\\Appium-Python-Client-0.17");
getFileAll(file);
}
//获取制定目录以及子目录中的所有的文件
public static void getFileAll(File file) {
File[] files=file.listFiles();
//遍历当前目录下的所有文件和文件夹
for (File f:files) {
//判断当前遍历到的是否为目录
if(f.isDirectory()) {
//是目录,继续获取这个目录下的所有文件夹
getFileAll(f);
}else {
//不是目录,说明当前f就是文件,那么就打印出来
System.out.println(f);
}
}
}
}




推荐阅读
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 本文介绍如何使用 Python 提取和替换 .docx 文件中的图片。.docx 文件本质上是压缩文件,通过解压可以访问其中的图片资源。此外,我们还将探讨使用第三方库 docx 的方法来简化这一过程。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文详细介绍了Python中函数的基本概念,包括函数的定义与调用、文档注释、参数传递(形参与实参)、返回值以及函数嵌套。通过具体示例和解释,帮助读者掌握函数在编程中的应用。 ... [详细]
  • Python3 第一周学习总结
    本文总结了Python3第一周的学习内容,包括Python的主要特性、版本选择建议、开发环境配置技巧以及一些有趣的语言特性。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
author-avatar
safadfdfdsfsd
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有