ruby 遍历文件
ruby遍历文件内容,基本思路是逐行读取逐行打印,也是比较普遍的方法:
#!/usr/bin/envruby#Encoding:utf8file=File.open("/tmp/abc.txt")file.each_linedo|line|printlineendfile.close
直接写成块,好处是无需显性的关闭文件句柄。
File.open('/tmp/abc.txt')do|file|file.each_linedo|line|printlineendend
另外一种写法,一次性读取一次性打印,相对耗费更多内存,小文件场合比上面的方法更快。不推荐操作大文件。
#!/usr/bin/envruby#Encoding:utf8wholefile=File.read("/tmp/abc.txt")printwholefile
小结
1、第一种方法比较像sed,awk之类的流编辑器,第二种方法跟cat一样暴力。
2、File.read不需要显式关闭文件句柄。
扩展
在打开文件前,判断文件是否存在
#!/usr/bin/envruby#Encoding:utf8ifFile.exist?("/tmp/abc.txt")file=File.open("/tmp/abc.txt")file.each_linedo|line|printlineendfile.closeelseputs"error:filenotexist"end
逐行读取,将文件名作为ruby脚本的参数
#!/usr/bin/envruby#Encoding:utf8filename=ARGV[0]ifFile.exist?(filename)file=File.open(filename)file.each_linedo|line|printlineendfile.closeelseputs"error:filenotexist"end
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。