您好,登錄后才能下訂單哦!
ruby遍歷文件內容,基本思路是逐行讀取逐行打印,也是比較普遍的方法:
#!/usr/bin/env ruby #Encoding:utf8 file = File.open("/tmp/abc.txt") file.each_line do |line| print line end file.close
直接寫成塊,好處是無需顯性的關閉文件句柄。
File.open('/tmp/abc.txt') do |file| file.each_line do |line| print line end end
另外一種寫法,一次性讀取一次性打印,相對耗費更多內存,小文件場合比上面的方法更快。不推薦操作大文件。
#!/usr/bin/env ruby # Encoding:utf8 wholefile = File.read("/tmp/abc.txt") print wholefile
小結
1、第一種方法比較像sed,awk之類的流編輯器,第二種方法跟cat一樣暴力。
2、File.read不需要顯式關閉文件句柄。
擴展
在打開文件前,判斷文件是否存在
#!/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腳本的參數
#!/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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。