[解決済み] RubyのFile.openで "No such file or directory - text.txt (Errno::ENOENT)" というエラーが発生する。
2022-02-13 11:27:06
質問内容
Win 7 マシンに Ruby 1.9.2 をインストールしました。簡単な
analyzer.rb
ファイルを作成します。この1行がある。
File.open("text.txt").each {|line| puts line}
このコードを実行すると、このようなエラーが発生します。
analyzer.rb:1:in `initialize': No such file or directory - text.txt (Errno::ENOENT)
from analyzer.rb:1:in `open'
from analyzer.rb:1:in `<main>'
Exit code: 1
理解できない。そこには
text.txt
と同じディレクトリにあるファイル
analyzer.rb
ファイルを作成します。ファイルの絶対パスも与えてみました。
C:\Ruby192\text.txt
が、ダメでした。何が足りないのでしょうか?
解決方法は?
を把握することから始めましょう。
現在の作業ディレクトリ
は、実行中のスクリプトのためのものです。
この行を冒頭に追加します。
puts Dir.pwd
.
これは、rubyがどのカレントワーキングディレクトリでスクリプトを実行しているかを示しています。おそらく、あなたが想定している場所とは異なることがわかるでしょう。次に、パス名が正しく指定されていることを確認してください。Windows用のパス名を正しく指定する方法については、こちらのドキュメントを参照してください。
http://www.ruby-doc.org/core/classes/IO.html
次に
Dir.chdir
で作業ディレクトリを text.txt がある場所に変更するか、上記の IO ドキュメントの指示に従ってファイルの絶対パス名を指定します。これでできるはずです...
編集
スクリプトファイルの中にテキストファイルを置く場合、最も便利な第3の解決策を追加します。
Dir.chdir(File.dirname(__FILE__))
これにより、現在の作業ディレクトリが自動的に
.rb
ファイルを作成し、スクリプトを実行します。
関連
-
[解決済み】StringからIntegerへの暗黙の変換がない(TypeError)?
-
[解決済み】Rubyで数値の配列の合計を出すには?
-
[解決済み】Ruby:kind_of? vs. instance_of? vs. is_a?
-
[解決済み] Gemfile が見つかりません。
-
[解決済み] Ruby、スタックレベルが深すぎる (SystemStackError)
-
[解決済み] Ruby Detect方式
-
[解決済み] Rubyで配列を降順にソートする方法
-
[解決済み] Rubyにバイナリ検索は組み込まれていますか?
-
[解決済み】Podセットアップを実行すると、"bad interpreter: No such file or directory "エラーが発生する
-
[解決済み] json」ネイティブ gem は、インストールされたビルドツールを必要とします。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Rubyのローカル変数が未定義である
-
[解決済み] Rubyでnil値をマッピングして削除する方法
-
[解決済み] Ruby on railsで改行せずにコンソールに "puts "を使用するにはどうすればよいですか?
-
[解決済み] あなたが提供した認証メカニズムはサポートされていません。AWS4-HMAC-SHA256を使用してください。
-
[解決済み] Ruby で Fixnum から String への暗黙の変換ができない (TypeError)
-
[解決済み] Rubyのダブルコロン `::` とは何ですか?
-
[解決済み] Capybaraを使ったドロップダウンでのオプションの選択方法
-
[解決済み] ファイルの存在を確認する方法 [重複]について
-
[解決済み] ネストされたクラスとモジュールにネストされたクラスはいつ使用するのですか?
-
[解決済み] Rubyで指定されたディレクトリが存在するかどうかを確認する方法