1
私はファイルを開くためにARGVを使用していましたが、私はclunkyのように別のフォルダに入れたいと思っています。ファイルを別のディレクトリに開いてファイルを開く - ruby
私はtalk_parser.rb内でinput.txtを開きたいのですが、ファイル名をハードコードしたくありません。
私のディレクトリには、(PWDがビンである)
├── 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'は' Array'を返します。この場合、 '' Array''は "/ home/huvi/Desktop/test/data /"の "* .txt"ファイルになりますので、これらのファイルをループしているはずです。あなたが最初のものだけを望むなら、最初の行を 'to_s'から' first'に変更してください。今すぐあなたは 'Array'で' to_s'を呼び出していますので、 '' ["../ data/input.txt"] '' – engineersmnky
' 'Dir :: glob'で' ..'を使用できますか?または、 'x = Dir.glob( '**/data/*。txt')。first'(' data'ディレクトリに1つのファイルがあると仮定します)? – orde
@ orde良い点。技術的には、 'Dir :: glob'に' ..'を使用することはできますが、それは非常に奇妙な結果があり、理解が難しいです。 – engineersmnky