2

基本上,我真的被困住了。

我有这个文本,我需要这样做: *print prompt file_again = STDIN.gets.chomp() txt_again = File.open(file_again) puts txt_again.read()*

并且基本上从打印在我的控制台上的 .txt 文件中获取文本!

直接从 irb 使用 File.open(),然后尝试:

 File.open("ex15_sample.txt")

^ 我假设它打开了,但我仍然无处可去。我的意思是,它没有标记为变量,我无法打印它。

如果我使用:

txt = File.open("ex15_sample.txt")

首先我会遇到一些错误,所以我以后不能使用 print txt。

练习来自http://ruby.learncodethehardway.org/book/ex15.html,我正在尝试做一些可选的东西,所以我不会像我之前做的 codeschool 初学者课程那样一无所获。

4

2 回答 2

18

我在 .../Ruby/zintlist/irb 中创建了一个文件 ex15_sample.txt。

1.8.6 :082 > File.open("ex15_sample.txt")
Errno::ENOENT: No such file or directory - ex15_sample.txt
    from (irb):82:in `initialize'
    from (irb):82:in `open'
    from (irb):82
    from :0
1.8.6 :086 > Dir.getwd
 => "/.../Ruby/prod/spec" 
1.8.6 :087 > Dir.chdir('../../zintlist/irb')
 => 0 
1.8.6 :088 > Dir.getwd
 => "/.../Ruby/zintlist/irb" 
1.8.6 :089 > File.open("ex15_sample.txt")
 => #<File:ex15_sample.txt> 
1.8.6 :090 > 

尝试 File.open("ex15_sample.txt") 我假设它打开

在 irb 中,通常你不需要假设,你有一个立即的答案。

1.8.6 :090 > txt = File.open("ex15_sample.txt")
 => #<File:ex15_sample.txt> 
1.8.6 :091 > puts txt.read()
This is stuff I typed into a file.
It is really cool stuff.
Lots and lots of fun to have in here.
 => nil 
1.8.6 :092 > 
于 2012-12-12T08:54:25.633 回答
0
1.8.6 :090 > txt = open("ex15_sample.txt")
 => #<File:ex15_sample.txt> 
1.8.6 :091 > puts txt.read
This is stuff I typed into a file.
It is really cool stuff.
Lots and lots of fun to have in here.
 => nil 
1.8.6 :092 > 
于 2017-01-22T22:01:47.507 回答