当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Ruby ARGF类用法及代码示例

本文简要介绍ruby语言中 ARGF类 的用法。

ARGF 是一个流,设计用于处理作为命令行参数给出或通过 STDIN 传入的文件的脚本。

传递给脚本的参数存储在 ARGV Array 中,每个元素一个参数。 ARGF 假定所有不是文件名的参数都已从 ARGV 中删除。例如:

$ ruby argf.rb --verbose file1 file2

ARGV  #=> ["--verbose", "file1", "file2"]
option = ARGV.shift #=> "--verbose"
ARGV  #=> ["file1", "file2"]

您现在可以使用ARGF 来处理每个命名文件的串联。例如,ARGF.read 将返回 file1 的内容,后跟 file2 的内容。

读取 ARGV 中的文件后,ARGF 将其从 Array 中删除。因此,在读取所有文件后,ARGV 将为空。

您可以自己操作ARGV 来控制ARGF 操作的内容。如果您从 ARGV 中删除一个文件,它会被 ARGF 忽略;如果您将文件添加到 ARGV ,它们将被视为在命令行上命名。例如:

ARGV.replace ["file1"]
ARGF.readlines # Returns the contents of file1 as an Array
ARGV           #=> []
ARGV.replace ["file2", "file3"]
ARGF.read      # Returns the contents of file2 and file3

如果 ARGV 为空,则 ARGF 就像它包含 STDIN 一样,即通过管道传输到脚本的数据。例如:

$ echo "glark" | ruby -e 'p ARGF.read'
"glark\n"

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 ARGF类。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。