Java與Python統計文件夾及子文件夾下文件個數


package dang;

import java.io.File;


/**
 * @ClassName:       FileCount
 * @Description:    TODO()
 * @author:            dangjinhu
 * @date:            2018年11月1日        下午2:24:58
 */

public class FileCount {  
      
    public static void main(String[] args) {  
        int[] array = new int[]{0,0};  
        print(new File(args[0]),1,array);  
        System.out.println("該目錄下面共有文件夾個數:"+array[0]);  
        System.out.println("該目錄下面共有文件個數:"+array[1]);  
    }  
      
    /** 
     * 打印指定文件夾下面的文件夾和文件的名字,統計該文件夾下面的文件夾數量和文件數量 
     * @param file 根文件夾 
     * @param level 深度從1開始算 
     * @param array 存放統計個數的數據,[0]文件夾個數,[1]文件個數 
     */                                                                                                                                     
    public static void print(File file,int level,int[] array){  
        if(file.isDirectory()){  
            array[0]++;  
            File[] files = file.listFiles();  
            for (File item : files) {  
                print(item,level+1,array);  
            }     
        }else{  
            array[1]++; 
            System.err.println(array[1]);
        }  
    }  
}  
# @Author  : 黨金虎
#!/usr/bin/python3
#coding:utf-8
"""

TODO:

"""
# @Author  : 黨金虎
# @Time    : 2018/11/2 17:09
# @FileName: filecount.py

import os

path = '/...'  # 獲取當前路徑
print(path)
num_dirs = 0  # 路徑下文件夾數量
num_files = 0  # 路徑下文件數量(包括文件夾)
num_files_rec = 0  # 路徑下文件數量,包括子文件夾里的文件數量,不包括空文件夾

for root, dirs, files in os.walk(path):  # 遍歷統計
    for each in files:
        if each[-2:] == '.o':
            print
            root, dirs, each
        num_files_rec += 1
        print(num_files_rec)
    for name in dirs:
        num_dirs += 1
        print
        os.path.join(root, name)

for fn in os.listdir(path):
    num_files += 1
    print
    fn

print(num_dirs)
print(num_files)
print(num_files_rec)

 Linux下統計文件個數,100多萬數據,深度2,平均一分鍾統計20000個文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM