如何在 Ruby 中将文本文件作为参数传递

Sam*_*Sam 1 ruby text file

我需要传递一个文本文件作为参数,而不是在代码中打开它。文本文件的内容应打印在控制台上。我已经完成了以下代码:

File.open("test_list.txt").each do |line|
    puts line
end
Run Code Online (Sandbox Code Playgroud)

请指教。

Dan*_*cio 5

在 shell 上,调用ruby脚本,后跟文件名.txt,如下所示:

ruby foo.rb test_list.txt
Run Code Online (Sandbox Code Playgroud)

该变量ARGV将包含对调用解释器时传递的所有参数的引用ruby。特别是ARGV[0] = "test_list.txt",因此您可以使用它而不是硬编码文件名:

File.open(ARGV[0]).each do |line|
    puts line
end
Run Code Online (Sandbox Code Playgroud)



另一方面,如果您想将文件的内容传递给您的程序,您可以使用:

cat test_list.txt | ruby foo.rb

并在程序中:

STDIN.each_line do |line|
    puts line
end
Run Code Online (Sandbox Code Playgroud)