Ruby IO之ARGF,ARGV

在使用ruby脚本时, 经常需要用到在参数中给出文件名,然后再脚本中可以处理该文件的功能,或者说从STDIN获取输入,然后处理得到某个结果。 而ruby为开发者处理类似的问题提供了一个很好的解决方法 --- ARGF

“ARGF is a stream designed for use in scripts that process files given as command-line arguments or passed in via STDIN.”

[size=medium][b]ARGF[/b][/size]
ARGF.each { |line|
puts line
}


上面就是根据参数,找到文件,打印出文件内容所需的全部代码。

[img]http://dl2.iteye.com/upload/attachment/0091/4596/bb604d2e-5479-323a-b52c-62810607a219.png[/img]

该脚本甚至可以接受多个文件名参数,按顺序一个一个的处理文件。

另外,该代码还有一个附赠的语法糖,如果没有给参数,则默认等待STDIN的输入,效果如下:

[img]http://dl2.iteye.com/upload/attachment/0091/4598/b5e5ab09-69dd-3b73-8160-e0a80f834041.png[/img]

[size=medium][b]ARGV[/b][/size]
在运行ruby脚本的时候,所有的参数会以Array的形式保存到ARGV中。ARGF则会根据ARGV中的值一个一个的处理,每处理一个就从ARGV中移除一个,直到处理完所有的值。

puts ARGV.inspect

ARGF.each { |line|
puts line
puts ARGV.inspect
}


[img]http://dl2.iteye.com/upload/attachment/0091/4602/dd56eb91-8363-302e-a1d1-c9ebb78c048c.png[/img]

有了这层理解,就可以很容易的为脚本加一些option,然后从ARGV中取出,根据option去做特殊的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值