成都网站建设设计

将想法与焦点和您一起共享

ruby遍历文件-创新互联

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

成都网络公司-成都网站建设公司创新互联十多年经验成就非凡,专业从事成都网站建设、网站设计,成都网页设计,成都网页制作,软文推广一元广告等。十多年来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:028-86922220,我们期待您的来电!#!/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

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站题目:ruby遍历文件-创新互联
文章出自:http://chengdu.cdxwcx.cn/article/djdidc.html