如何使用特定脚本读取Ruby中的文件?

如何使用特定脚本读取Ruby中的文件?,ruby,text-files,stdin,argv,Ruby,Text Files,Stdin,Argv,我正在做一系列关于如何用Ruby编写代码的教程。我想使用以下公式读取.txt文件: filename = ARGV.first prompt = "> " txt = File.open(filename) puts "Here's your file: #{filename}" puts txt.read() puts "I'll also ask you to type it again:" print prompt file_again = STDIN.gets.chomp()

我正在做一系列关于如何用Ruby编写代码的教程。我想使用以下公式读取.txt文件:

filename = ARGV.first

prompt = "> "
txt = File.open(filename)

puts "Here's your file: #{filename}"
puts txt.read()

puts "I'll also ask you to type it again:"
print prompt
file_again = STDIN.gets.chomp()

txt_again = File.open(file_again)

puts txt_again.read()
文本文件的内容如下:

This is stuff I typed into a file. It is really cool stuff.
Lots and lots of fun to have in here.
文本文件的名称为
ex15_sample.txt
。我试过上面的公式,但似乎没有任何效果。我很难理解如何使用
ARGV
STDIN.get.chomp


我该怎么办?我要求你使用上面的公式;这些东西有点让人困惑,所以现在,只需使用上面的公式。

脚本可以工作。你没有解释你是如何运行脚本的,或者你看到了什么错误,所以帮助你有点困难

如果脚本所在的目录中有一个名为
ex15_sample.txt
的文本文件(我们称之为
script.rb
),并且Ruby设置正确,那么如果使用

$ ruby script.rb ex15_sample.txt 同样,如果不知道脚本是如何运行的,或者遇到了哪些错误,就很难为您提供帮助

更新:我觉得您的问题在于不清楚如何运行Ruby脚本。最简单的方法是,在系统的命令提示符下,键入
ruby
,然后键入一个空格,然后键入包含ruby脚本的文件名。如果脚本位于名为
script.rb
的文件中,则应键入
ruby script.rb
。如果您的脚本位于具有不同名称的文件中,则这将不起作用。如果脚本位于名为
read-a-file.rb
的文件中,则需要键入
ruby read-a-file.rb


这个特定的脚本需要在文件名之后有一个命令行参数。如果要读取的文本文件位于名为
ex15_sample.txt
的文件中,则需要在脚本名称后键入该文件。在前面的示例中,命令将变成
ruby read-a-file.rb ex15_sample.txt
。只有当文件位于同一目录(也称为文件夹)中时,这才有效。

您所说的“特定脚本”是什么意思?你是说“编码”吗?什么是“公式”?你是如何运行程序的:你在命令行上到底输入了什么?当你说什么都不管用的时候,你的确切意思是什么:有错误信息吗?@Jorg-See,关于我在做什么,我不知道很多术语。我是一个初学者…我只知道非常基本的东西,所以所有这些对我来说都是全新的。但要回答你们的问题:我不知道我说的是什么意思,因为我的问题已经编辑过了。我想这就是我可能要做的。我说的公式和我说的“ARGV.first,etc…etc…etc…etc…完全是新的”。@FMc嗯,它说“filename=ARGV.first”,我用“ex15_sample.txt”填充文件名“它总是给我错误信息。所以,是的,每次我尝试做一些新的事情时,我都会从阴阳中得到错误消息。@Jorg我所说的不是特定脚本,而是一个大脚本,上面写着“filename=ARGV.first,etc…etc…”对不起,我忘记了上面的主要问题。好的,让我试试,我会带着错误消息回来。好的,让我问你这个问题。当您说,如果您使用$ruby script.rb ex15_sample.txt运行它,那么您的确切意思是什么?你的意思是从命令提示符?比如对于ex:我输入irb,然后输入你上面输入的内容,然后我应该不会收到错误消息。也许这就是问题所在…也许我不知道该怎么开始。基本上,我只是想让Ruby阅读这个.txt文件,这就是我真正做的。我也是,直到现在,我对任何教程都没有问题。我不明白。在目前的脚本中,试图从
ARGV
获取文件名在irb中没有意义。如果要在名为
script.rb
的文件中运行脚本,可以在命令提示下键入
ruby script.rb ex15_sample.txt
而不是键入
irb
。如果您只是想让Ruby从irb中读取文件,您可以执行
file.read('ex15_sample.txt')
。好吧……lemme在命令提示符中键入just Ruby script.rb ex15_sample.txt,看看会发生什么。
filename = "ex15_sample.txt" # Without the quotes, you'll get an error.