ruby逐行遍历文件

2016-12-21 10:00:32来源:http://purplegrape.blog.51cto.com/1330104/1884333作者:紫色葡萄人点击


ruby遍历文件内容,基本思路是逐行读取逐行打印,也是比较普遍的方法:

#!/usr/bin/envruby
#Encoding:utf8

file=File.open("/tmp/abc.txt")
file.each_linedo|line|
printline
end
file.close

另外一种写法,一次性读取一次性打印,相对耗费更多内存,小文件场合比上面的方法更快。不推荐操作大文件。

#!/usr/bin/envruby
#Encoding:utf8

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

小结

1、第一种方法比较像sed,awk之类的流编辑器,第二种方法跟cat一样暴力。

2、File.read不需要显式关闭文件句柄。

扩展

在打开文件前,判断文件是否存在

#!/usr/bin/envruby
#Encoding:utf8
ifFile.exist?("/tmp/abc.txt")
file=File.open("/tmp/abc.txt")
file.each_linedo|line|
printline
end
file.close
else
puts"error:filenotexist"
end

逐行读取,将文件名作为ruby脚本的参数

#!/usr/bin/envruby
#Encoding:utf8

filename=ARGV[0]
ifFile.exist?(filename)
file=File.open(filename)
file.each_linedo|line|
printline
end
file.close
else
puts"error:filenotexist"
end

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台