我一直在使用 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>'
不知道该怎么办
最佳答案
Dir.glob 返回一个数组
。
您可以获得第一个元素并打开它:
path = Dir.glob('../data/*.txt').first
file = File.open(path)
关于ruby - 在不同目录中打开文件以读取行 - ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44975582/