ruby 遍历文件
admin
2023-02-15 12:20:04
0

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




相关内容

热门资讯

终于明白“悟空黑桃A.有挂吗?... 有 亲,根据资深记者爆料悟空黑桃A是可以开挂的,确实有挂(咨询软件无需打...
我来教教您“云圈丰城麻将.究竟... 网上科普关于“云圈丰城麻将有没有挂”话题很是火热,小编也是针对云圈丰城麻将作*弊开挂的方法以及开挂对...
终于明白“同城游跑胡子.到底有... 网上科普关于“同城游跑胡子有没有挂”话题很是火热,小编也是针对同城游跑胡子作*弊开挂的方法以及开挂对...
重磅消息“新卡农炸金花.真的有... 重磅消息“新卡农炸金花.真的有挂吗?”详细开挂教程您好,新卡农炸金花这个游戏其实有挂的,确实是有挂的...
【今日要闻】“微乐南昌麻将.辅... 家人们!今天小编来为大家解答微乐南昌麻将透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里...
终于了解“微乐三打一.怎么开挂... 您好:微乐三打一这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游...
今日重磅消息“三鑫联盟.辅助开... 今日重磅消息“三鑫联盟.辅助开挂神器?”外卦神器下载您好,三鑫联盟这个游戏其实有挂的,确实是有挂的,...
终于了解“大赢家棋牌.究竟有挂... 您好:大赢家棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游...
最新引进“卡贝大厅.到底是不是... 最新引进“卡贝大厅.到底是不是挂?”太坑了原来有挂您好,卡贝大厅这个游戏其实有挂的,确实是有挂的,需...
今日重大通报“新皇豪炸金花.怎... 今日重大通报“新皇豪炸金花.怎么开挂?”透视曝光猫腻您好,新皇豪炸金花这个游戏其实有挂的,确实是有挂...