我可以閱讀使用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文件在寫入後仍然是打開的。在閱讀之前關閉文件有助於! –
另外,我自己是一個錯誤的名詞,它實際上與腳本的文件名不一樣 –