我可以阅读使用Ruby(v1.9.3-P125)的任何文件,但有麻烦用下面的命令:如何读取.rb文件的内容?
IO.read("myself.rb")
File.open("myself.rb","rb")
当这样一个“* .RB”的文件,它会返回一个空字符串。如果我将文件重命名为“myself.rabit”,它就可以工作。
如何解决ruby源文件的表观过滤问题?
我可以阅读使用Ruby(v1.9.3-P125)的任何文件,但有麻烦用下面的命令:如何读取.rb文件的内容?
IO.read("myself.rb")
File.open("myself.rb","rb")
当这样一个“* .RB”的文件,它会返回一个空字符串。如果我将文件重命名为“myself.rabit”,它就可以工作。
如何解决ruby源文件的表观过滤问题?
没有这样的过滤,你没有遇到你认为你遇到的错误。
举例来说,这只是正常存储在一个文件.rb
一个完整的Ruby程序:
puts File.open(__FILE__).read
标记为“错误的错误”指针正确....一定要关闭文件! –
你已经得到了正确的答案:使用__FILE__
。
当您想要读取主文件时,还有另一种可能性。
请看下面的代码:
p DATA
p DATA.pos
p DATA.read
__END__
This is text after __END__
当你执行它,你就会得到
#<File:test.rb>
50
"This is text after __END__"
DATA
是一个文件句柄,定位脚本(__END__
)结束后 - 在我的例子它是位置50.
我经常用这个DATA
来存储数据在'here-document'中。
您可以使用这种可能性,只需将位置设置为文件开始。
DATA.pos= 0
puts DATA.read
两个限制:
__END__
是强制性的。
@meagar让它成为答案! –
糟糕...我意识到.rb文件在写入后仍然是打开的。在阅读之前关闭文件有助于! –
另外,我自己是一个错误的名词,它实际上与脚本的文件名不一样 –