温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ruby 遍历文件

发布时间:2020-07-04 17:20:11 来源:网络 阅读:9431 作者:紫色葡萄 栏目:编程语言

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




向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI