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

标签 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>'

不知道该怎么办

最佳答案

Dir.glob 返回一个数组。 您可以获得第一个元素并打开它:

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

关于ruby - 在不同目录中打开文件以读取行 - ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44975582/

相关文章:

ruby - 确定 Ruby 1.9.3 中的字符编码

macos - 在终端(OSX)中创建大量指定大小的文件?

Python:如何获取当前正在运行的脚本的目录?

ruby - Rspec:有没有办法在 before(:each) block 之后但在实际的 it block 之前执行代码?

ruby-on-rails - 如何修复在 Rails 中自动加载常量错误时检测到的循环依赖?

java - 从java中文件的某个随机行扫描?

c++ - 计算 Windows 中的 NTFS 和 FAT 文件系统大小

Wix - 根据条件安装目录

shell - 仅显示文件名而不显示整个目录路径

ruby-on-rails - 无方法错误 : undefined method `confirm!' for #<User