我一直在使用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>'
不确定该怎么做
答案 0 :(得分:1)
Dir.glob返回Array
。
你可以得到第一个元素并打开它:
path = Dir.glob('../data/*.txt').first
file = File.open(path)