Python【day 14-2】递归遍历文件夹
#需求 遍历文件夹中所有的子文件夹及子文件--用递归实现 ''''''
'''
伪代码
1、遍历根目录--listdir for
得到第一级子文件夹(不包含子文件夹的子文件)和文件
2、判断是文件还是文件夹
如果是文件,就直接打印文件名
如果是文件夹(全路径才行),就自己调用自己(递归) 步骤:
1、先实现功能
2、然后进行优化--每一级目录的缩进打印
'''
import os # path1 = r'D:\Program\JetBrains\PycharmProjects\xq_py\全栈16\001' #绝对路径
path1 = r'..\001' #相对路径,..\表示当前目录的上一级目录 .\表示当前目录 #推荐 def for_file(path1,n): #参数1是文件夹路径的根目录,参数2是用于调整层级缩进的
li1 = os.listdir(path1) #1 列出根目录下第一层级的文件夹(不包含其子文件夹和子文件)和文件,返回列表
# print(li1) #['002', '003.py', '005.py', '__init__.py']
for i in li1: # 2遍历循环列表,打印第一次层级的文件夹和文件
full_path1 = os.path.join(path1,i) #3 拼接第一层级的文件夹的全路径
# print(full_path1)
if os.path.isdir(full_path1): #4判断全路径是否是文件夹
print('\t'*n+i) # 4-2 全路径是文件夹的话,打印文件夹的名字(文件夹的名字打印不需要全路径)
for_file(full_path1,n+1) #自己调自己 #5全路径是文件夹的话,自己调用自己--递归
#把第一层级的文件夹当做根目录,
#注意:递归的时候,文件夹必须是全路径,而不能是文件夹名字
#参数2 n+1表示每次递归的时候,缩进都会增加1
else: #6 全路径不是文件夹的话,就是文件,打印文件的名字即可(文件的名字打印不需要全路径)
print('\t'*n+i) #6-2 '\t'表示tab制表符-4个空格的缩进 for_file(path1,1) #7 调用函数,参数1是文件夹根目录的全路径(可以是绝对路径,也可以是相对路径-推荐)
#参数2是用于调整层级缩进的
#根目录下的文件夹(包含其子文件夹和子文件)和文件的层级缩进图
#
#
# 004.py
# __init__.py
# 003.py
# __init__.py
# 003.py
# 005.py
# __init__.py
Python【day 14-2】递归遍历文件夹的更多相关文章
- Java File类应用:递归遍历文件夹和递归删除文件
要求: 1)采用递归遍历文件夹下的所有文件,包括子文件夹下的文件 2)采用递归删除文件下的所有文件 注意: 以下递归删除文件的方法,只能删除文件,所有的文件夹都还会存在 若要删除正文文件夹,可以在递归 ...
- [C#]递归遍历文件夹
/// <summary> /// 递归获取文件夹目录下文件 /// </summary> /// <param name="pathName"> ...
- linux文件夹操作及递归遍历文件夹
文件夹相关函数介绍 //mkdir 函数创建文件夹 #include <sys/stat.h> #include <sys/types.h> int mkdir(const c ...
- TypeScript ES6-Promise 递归遍历文件夹中的文件
貌似很多人都爱用这个作为写文章的初尝试,那来吧.遍历文件夹下的所有文件,如遍历文件夹下并操作HTML/CSS/JS/PNG/JPG步骤如下:1.传入一个路径,读取路径里面所有的文件:2.遍历读取的文件 ...
- python 递归遍历文件夹
#!/usr/bin/python import os.path def readXmls(folder): #三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字 for ...
- java File基本操作,以及递归遍历文件夹
java 的文件操作,相对来说是比较重要的,无论是编写CS还是BS程序,都避免不了要与文件打交道,例如读写配置文件等.虽然现在很多框架都直接帮你做好了这一步! java.io.File 底层是调用与c ...
- CentOS下递归遍历文件夹下所有文件,查找指定字符
命令如下: find . | xargs grep -ri "XXX"
- PHP递归和非递归遍历文件夹下文件
function readDirFiles($dir){ $files= []; $queue=[realpath($dir)]; $currentPath = current($queue); wh ...
- SHELL递归遍历文件夹下所有文件
#!/bin/bash read_dir(){ ` do "/"$file ] then if [[ $file != '.' && $file != '..' ] ...
随机推荐
- JavaScript 数学
JavaScript Math 数学 神奇的圆周率 Math.PI ; // 返回 3.1415926535-- Math 数学方法 Math.round() Math.round(X):返回 X 的 ...
- DOJO之gridx
GridX简介 Gridx是IBM公司的职员对Dojo中的Grid进行进一步扩展的组件,但是它是重新开发了Grid而不是继承Grid. 虽然同样都是基于Dojo store, 但与DataGrid/E ...
- [b0019] python 归纳 (五)_类装饰器
总结: 类装饰器, 本质是一个函数,输入一个类,返回一个类 Case 1 啥都没做 def deco(in_class): return in_class @deco class Cat: def _ ...
- 传入一个Map<String,Long> 返回它按value排序后的结果
//传入一个Map<String,Long> 返回它按value排序后的结果 sort为正序还是倒序(-1倒序),size为要几条数据 private static Map<Stri ...
- Android刷机
1.安装第三方recovery 下载自己手机适配的recovery包 https://twrp.me/lg/lgnexus5.html fastboot 卡在 waiting for device $ ...
- ACM-ICPC 2018 南京网络赛
题目顺序:A C E G I J L A. An Olympian Math Problem 打表,找规律,发现答案为n-1 C. GDY 题意: m张卡片,标号1-13: n个玩家,标号1-n:每个 ...
- linux下C/C++编译时系统搜索 include 和 链接库 文件路径的指定
C/C++程序在linux下被编译和连接时,GCC/G++会查找系统默认的include和link的路径,以及自己在编译命令中指定的路径.自己指定的路径就不说了,这里说明一下系统自动搜索的路径. ...
- jieba、NLTK学习笔记
中文分词 - jiebaimport re import jieba news_CN = ''' 央视315晚会曝光湖北省知名的神丹牌.莲田牌“土鸡蛋”实为普通鸡蛋冒充,同时在商标上玩猫腻, 分别注册 ...
- Mybatis 的 mapper配置文件,XXXXMapper.xml
存着一个配置文件,方便开发使用.主要是XML标签. <?xml version="1.0" encoding="UTF-8" ?> <!DOC ...
- 项目那几步走:先配置setting路径文件、创建数据库、执行数据库迁移命令、配置mysql数据库信息、注册app、注释中间件、pymysql替换mysqldb-配置urls路由-继续视图函数-然后HTML页面展示-HTML里面导入css文件、models配置数据库表、
django使用mysql数据库: 首先cmd创建库 1.settings: """Django settings for day42 project. Generate ...