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')

posted @ 2018-02-19 01:00  Pushy  阅读(469)  评论(0)    收藏  举报

Thanks cnblog

You can to my personal blog