在不同的目录中打开文件来读取行 - ruby

时间:2017-07-07 16:21:50

标签: ruby file directory

我一直在使用ARGV来打开文件,但我觉得它很笨重我希望将它们放在不同的文件夹中。

我想在talk_parser.rb中打开input.txt,我也不想对文件名进行硬编码。

我的目录(pwd是bin)

├── bin
│ └── talk_parser.rb
└── data
  └── input.txt

尝试了

x = Dir.glob('../data/*.txt').to_s
file = File.open(File.expand_path(x))

但我收到此错误

talk_parser.rb:34:in `initialize': 
No such file or directory @ rb_sysopen - /home/huvi/Desktop/test/bin/["../data/input.txt"] (Errno::ENOENT)
from talk_parser.rb:34:in `open'
from talk_parser.rb:34:in `<main>'

不确定该怎么做

1 个答案:

答案 0 :(得分:1)

Dir.glob返回Array。 你可以得到第一个元素并打开它:

  path = Dir.glob('../data/*.txt').first
  file = File.open(path)