萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> 收集的多個ruby遍歷文件夾代碼實例

收集的多個ruby遍歷文件夾代碼實例

   這篇文章主要介紹了收集的多個ruby遍歷文件夾代碼實例,本文總結了4個代碼片段,小編推薦最後一個方法,因為它很簡潔優雅,需要的朋友可以參考下

  一、遍歷文件夾下所有文件,輸出文件名

   代碼如下:

  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:workspacePyDemofas', [])

  for e in list:

  print e

  result:

   代碼如下:

  D:workspacePyDemofasfile120141113a.20141113-1100.log

  D:workspacePyDemofasfile120141113a.20141113-1101.log

  D:workspacePyDemofasfile120141113a.20141113-1140.log

  D:workspacePyDemofasfile220141113a.20141113-1100.log

  D:workspacePyDemofasfile220141113a.20141113-1101.log

  D:workspacePyDemofasfile220141113a.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

copyright © 萬盛學電腦網 all rights reserved