溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ruby 遍歷文件

發(fā)布時間:2020-07-04 17:20:11 來源:網(wǎng)絡 閱讀:9386 作者:紫色葡萄 欄目:編程語言

ruby遍歷文件內(nèi)容,基本思路是逐行讀取逐行打印,也是比較普遍的方法:

#!/usr/bin/env ruby
#Encoding:utf8

file = File.open("/tmp/abc.txt")
file.each_line do |line|
  print line
end
file.close

直接寫成塊,好處是無需顯性的關(guān)閉文件句柄。

File.open('/tmp/abc.txt') do |file|
  file.each_line do |line|
    print line
  end
end


另外一種寫法,一次性讀取一次性打印,相對耗費更多內(nèi)存,小文件場合比上面的方法更快。不推薦操作大文件。

#!/usr/bin/env ruby
# Encoding:utf8

wholefile = File.read("/tmp/abc.txt")
print wholefile


小結(jié)

1、第一種方法比較像sed,awk之類的流編輯器,第二種方法跟cat一樣暴力。

2、File.read不需要顯式關(guān)閉文件句柄。


擴展

在打開文件前,判斷文件是否存在

#!/usr/bin/env ruby
# Encoding: utf8
if File.exist?("/tmp/abc.txt")
  file = File.open("/tmp/abc.txt")
  file.each_line do |line|
    print line
  end
  file.close
else
  puts "error:file not exist"
end

逐行讀取,將文件名作為ruby腳本的參數(shù)

#!/usr/bin/env ruby
# Encoding: utf8

filename = ARGV[0]
if File.exist?(filename)
  file = File.open(filename)
  file.each_line do |line|
    print line
  end
  file.close
else
  puts "error:file not exist"
end




向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI