服务器之家

服务器之家 > 正文

收集的多个ruby遍历文件夹代码实例

时间:2020-04-29 10:36     来源/作者:脚本之家

一、遍历文件夹下所有文件,输出文件名

 

复制代码 代码如下:

def traverse_dir(file_path)
    if File.directory? file_path
        Dir.foreach(file_path) do |file|
            if file !="." and file !=".."
                traverse_dir(file_path+"/"+file)
            end
        end
    else
        puts "File:#{File.basename(file_path)}, Size:#{File.size(file_path)}"
    end
end
traverse_dir('D:/apache-tomcat')

 

二、ruby遍历文件夹

 

复制代码 代码如下:

def get_file_list(path) 
  Dir.entries(path).each do |sub|        
    if sub != '.' && sub != '..' 
      if File.directory?("#{path}/#{sub}") 
        puts "[#{sub}]" 
        get_file_list("#{path}/#{sub}") 
      else 
        puts "  |--#{sub}" 
      end 
    end 
  end 
end

 

三、python如何遍历一个目录输出所有文件名

 

复制代码 代码如下:

#coding=utf-8
'''
Created on 2014-11-14
 
@author: Neo
'''
import os
 
def GetFileList(dir, fileList):
    newDir = dir
    if os.path.isfile(dir):
        fileList.append(dir.decode('gbk'))
    elif os.path.isdir(dir): 
        for s in os.listdir(dir):
            #如果需要忽略某些文件夹,使用以下代码
            #if s == "xxx":
                #continue
            newDir=os.path.join(dir,s)
            GetFileList(newDir, fileList) 
    return fileList
 
list = GetFileList('D:\\workspace\\PyDemo\\fas', [])
for e in list:
    print e

 

result:

复制代码 代码如下:

D:\workspace\PyDemo\fas\file1\20141113\a.20141113-1100.log
D:\workspace\PyDemo\fas\file1\20141113\a.20141113-1101.log
D:\workspace\PyDemo\fas\file1\20141113\a.20141113-1140.log
D:\workspace\PyDemo\fas\file2\20141113\a.20141113-1100.log
D:\workspace\PyDemo\fas\file2\20141113\a.20141113-1101.log
D:\workspace\PyDemo\fas\file2\20141113\a.20141113-1140.log

 

四、简洁遍历写法

复制代码 代码如下:

import os
 
def iterbrowse(path):
    for home, dirs, files in os.walk(path):
        for filename in files:
            yield os.path.join(home, filename)
 
 
for fullname in iterbrowse("/home/bruce"):
    print fullname
标签:

相关文章

热门资讯

沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意 2019-07-07
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
返回顶部