Collected multiple Ruby traversal folder code instances

Time:2022-5-1

1、 Traverse all files under the folder and output the file name

 

Copy codeThe code is as follows:

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

 

2、 Ruby traverses folders

 

Copy codeThe code is as follows:

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

 

3、 How does Python traverse a directory and output all file names

 

Copy codeThe code is as follows:

#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 you need to ignore some folders, use the following code
            #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:

Copy codeThe code is as follows:

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

 

4、 Concise traversal writing

Copy codeThe code is as follows:

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

Recommended Today

JVM + GC parsing (premise knowledge concatenation)

Premise preparation JVM GC garbage collection JVM virtual machine monitoring, tuning and troubleshooting Tomcat and microservice optimization 1. Premise review 1.1. JVM memory structure 1.1.1、 JVM Architecture Overview The gray part in the figure isThread private, there is almost no garbage collectionOrange partThread sharing, the main place where garbage recycling occurs What is the class […]