【问题标题】:Cannot open file with Ruby Errno::ENOENT: No such file or directory @ rb_sysopen无法使用 Ruby Errno::ENOENT 打开文件:没有这样的文件或目录 @ rb_sysopen
【发布时间】:2021-03-19 11:50:44
【问题描述】:

使用 Ruby 2.6.6 我无法以常规方式打开文件。

2.6.6 :006 > File.open "https://www.pocket-rocket.io/robots.txt"
Traceback (most recent call last):
        7: from /Users/martinbraun/.rvm/rubies/ruby-2.6.6/bin/irb:23:in `<main>'
        6: from /Users/martinbraun/.rvm/rubies/ruby-2.6.6/bin/irb:23:in `load'
        5: from /Users/martinbraun/.rvm/rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/irb-1.0.0/exe/irb:11:in `<top (required)>'
        4: from (irb):6
        3: from (irb):6:in `rescue in irb_binding'
        2: from (irb):6:in `open'
        1: from (irb):6:in `initialize'
Errno::ENOENT (No such file or directory @ rb_sysopen - https://www.pocket-rocket.io/robots.txt)

该文件存在,我可以使用我的浏览器浏览它。 但我不断收到此错误。

我试过了:

require 'open-uri'

没有成功。

我在这里做错了什么?这个 Ruby 版本可能有问题吗? 我找不到任何提示。

【问题讨论】:

    标签: ruby


    【解决方案1】:

    File.open 期望文件在磁盘上,它不适用于远程文件。

    您也可以使用Net::HTTP.get,它会返回一个字符串。

     url = URI('https://www.pocket-rocket.io/robots.txt')
     Net::HTTP.get(url) # => "User-agent: *\nDisallow: /wp-admin/\nAllow: /wp-admin/admin-ajax.php\n"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-09
      • 2018-05-01
      • 2018-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多