python递归创建目录_Node.js和Python使用递归查看目录文件和创建目录

1. 查看目录文件:

1.1 Node实现:

let fs = require('fs');

let path = require('path');

let filePath = path.resolve('D:');

fileDisplay(filePath);

function fileDisplay(filePath){

//根据文件路径读取文件,返回文件列表

fs.readdir(filePath,function(err,files){

if(err){

console.warn(err)

}else{

//遍历读取到的文件列表

files.forEach(function(filename){

//获取当前文件的绝对路径

let filedir = path.join(filePath,filename);

//根据文件路径获取文件信息,返回一个fs.Stats对象

fs.stat(filedir,function(eror,stats){

if(eror){

console.warn('获取文件stats失败');

}else{

var isFile = stats.isFile();//是文件

var isDir = stats.isDirectory();//是文件夹

if(isFile){

console.log(filedir);

}

if(isDir){

fileDisplay(filedir);//递归,如果是文件夹,就继续遍历该文件夹下面的文件

}

}

})

});

}

});

}

1.2 Python实现:

import os

def file_display(filepath):

for each in os.listdir(filepath):

absolute_path = os.path.join(filepath, each)

is_file = os.path.isfile(absolute_path)

is_dir = os.path.isdir(absolute_path)

if is_file:

print(each)

elif is_dir:

# 如果是目录则开始递归:

file_display(absolute_path)

file_display('/home/pushy/www')

2. 创建目录:

2.1 Node实现:

function createDirSync(dirname) {

if (fs.existsSync(dirname)) {

return true;

} else {

// 开始递归调用函数,并接受其返回值:

recResult = createDirSync(path.dirname(dirname))

if (recResult) {

fs.mkdirSync(dirname);

return true

}

}

}

2.2 Python实现:

import os

def createFile(dirname):

exits = os.path.exists(dirname)

if exits:

return True

else:

# 开始递归调用函数,并接受其返回值:

rec_result = createFile(os.path.dirname(dirname))

if rec_result:

# 如果不存在该目录,则创建dirname的目录,并返回已经创建(存在)的值True:

os.mkdir(dirname)

return True

createFile('./aa/bb/cc')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311644.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

管理学定律--彼得原理

彼得原理由美国管理学家劳伦斯彼得(Laurence.J.Peter)根据千百个有关组织中不能胜任的失败实例的分析而归纳出来,于1960年的一次研习会上提出。其具体内容是:“在一个等级制度中,每个员工趋向于…

word List44

word List44 如果存在什么问题,欢迎批评指正!谢谢!

C++用Prim算法实现无向图最小生成树

#include <iostream> using namespace std; #define INFINE 99999999//假装自己是无穷大 const int N 1010; int graph[N][N]; int vertexnum, arcnum; //lowcost[i]:表示以i为终点的边的最小权值, //当lowcost[i]0说明以i为终点的边的最小权值0, //也就是表示i点加入了…

python序列数据类型_Python 数据类型 之 序列类型

序列&#xff1a;表示索引为非负整数的有序对象集合&#xff0c;所有序列都支持迭代 序列类型有&#xff1a;字符串&#xff0c;列表&#xff0c;元组 三种 字符串也是一种序列 列表和元组是任意python对象的序列或叫有序集合 字符串和元组不可变序列&#xff0c;列表支持插入、…

word List 45

word List 45 One of the pressing problems our nation faces today is how to strike a balance between economic development and environmental protection. 我们国家当今面临的最紧迫的问题之一就是如何平衡经济发展和环境保护之间的关系。 Corruption has existed since…

2020 年 中国.NET开发者调查报告

微信公众号dotnet跨平台2020年初做的一个关于中国.NET开发者调查收到了开发者近 1400 条回复。这份调查报告涵盖了开发者工具链的所有部分&#xff0c;包括编程语言、应用架构、应用服务器、运行时平台、框架技术、框架配置、IDE、.NET/.NET Core 发行版部署模式、构建工具和Ku…

C++实现有向图最短路径-Dijkstra单源最短路径算法

#include <iostream> using namespace std; #define INFINE 99999999//假装我是无穷大 const int N 1010; bool vis[N]; int dis[N]; int graph[N][N];//图 //Dijkstra算法计算点v到图上各个点的最短距离 void Dijkstra(int graph[][N], int v, int n) {//v为起点,//n为…

列名无效如何解决_XSKY ClickHouse如何实现存算分离

在介绍ClickHouse之前&#xff0c;说一下OLAP。OLAP也叫联机分析处理(Online Analytical Processing)。OLAP系统以维度模型来存储历史数据&#xff0c;其主要存储描述性的数据并且在结构上都是同质的。01ClickHouseOLAP应用有如下特点&#xff1a;1、大多数的请求是读请求&…

word List 46

word List 46 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

.NET Core开发实战(第6课:作用域与对象释放行为)--学习笔记(下)

06 | 作用域与对象释放行为接下来&#xff0c;把服务切换为单例模式&#xff0c;通过工厂的方式services.AddSingleton<IOrderService>(p > new DisposableOrderService());启动程序&#xff0c;输出如下&#xff1a;1 2 接口请求处理结束可以看到代码实际上不会被释放…

C++实现邻接表存储的图及bfs遍历

#include <iostream> #include <queue> using namespace std; typedef char VerTexType; #define MVNum 100 typedef char OtherInfo; bool vis[MVNum];//邻接表 typedef struct ArcNode {int adjvex;struct ArcNode *nextarc;OtherInfo info; } ArcNode;//弧(边)t…

cmd小游戏_使用pygame制作Flappy bird小游戏

原文链接&#xff1a;【Python】使用Pygame做一个Flappy bird小游戏&#xff08;一&#xff09;​mp.weixin.qq.com最近看到很多大佬用强化学习玩Flappy bird。所以打算也上手玩一玩&#xff0c;但是苦于没找到pc上的这个游戏&#xff0c;找了点资料&#xff0c;发现并不是很难…

word List 47

word List 47 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

使用BeetleX构建基础的SSL网络通讯

BeetleX的使用非常简单&#xff0c;通过Stream的数据流模式可以让你轻松处理网络数据&#xff1b;在处理SSL加密通讯的时候组件的使用也是非常方便&#xff0c;只需要简单的配置证书即可完成基于SSL的网络安全通讯&#xff0c;接下来介绍一下通过组件快速构建一个安全可靠的网络…

调用其他app 的lib_ButterKnife执行效率为什么比其他注入框架高?它的原理是什么...

面试官: ButterKnife为什么执行效率为什么比其他注入框架高&#xff1f;它的原理是什么心理分析&#xff1a; ButterKnife框架一直都是使用&#xff0c;很少又开发者对butterknife深入研究的&#xff0c;既然你是面试Android高级岗位&#xff0c;自然需要有相应被问到原理的准备…

[蓝桥杯2018初赛]第几天-日期计算(水题)

闰年&#xff08;Leap Year&#xff09;是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份为闰年。闰年共有366天&#xff08;1月~12月分别为31天、29天、31天、30天、31天、30天、31天、31天、30天、31天、30天、31天&#xff09;…

算法---会议最大安排问题

算法—会议最大合理安排问题 参考&#xff1a;趣学算法 代码&#xff1a; #include <stdio.h> #include <stdlib.h> typedef struct meet {int beg;//开始int end;//结束int num;//会议编号 }meet; int cmp44(meet m1,meet m2) {//越早结束的越优先&#xff0c;…

小cookie,大智慧

Cookie是什么&#xff1f;cookies是你访问网站时创建的数据片段文件&#xff0c;通过保存浏览信息&#xff0c;它们使你的在线体验更加轻松。使用cookies&#xff0c;可以使你保持在线登录状态&#xff0c;记录你的站点偏好&#xff0c;并为你提供本地化支持。First-party cook…

java 最少使用(lru)置换算法_LRU算法详解及最简单的Java实现

更多内容&#xff0c;欢迎关注微信公众号&#xff1a;全菜工程师小辉~LRU(Least recently used&#xff0c;最近最少使用)算法根据数据的历史访问记录来进行淘汰数据&#xff0c;其核心思想是“如果数据最近被访问过&#xff0c;那么将来被访问的几率也更高”。LRU算法的表现新…

word List 48

word List 48 如果存在什么问题&#xff0c;欢迎批评指正!谢谢&#xff01;