【问题标题】:No such file or directory @ rb_sysopen ruby and csv没有这样的文件或目录@rb_sysopen ruby​​ 和 csv
【发布时间】:2016-06-23 07:08:56
【问题描述】:

首先我想说的是,我是 Ruby 新手,如果我无法很好地为您提供我正在尝试解决的问题,这就是原因。

我正在尝试将 URL 转换为图像,并四处寻找答案,但似乎找不到适合我的答案。该文件有大约 70,000 多个链接,我也在尝试同时命名这些链接。如果相关,我正在使用 ruby​​ 2.3.0。

代码--

require 'open-uri'
require 'tempfile'
require 'uri'
require 'csv'

def downloadFile(path,url)
 begin
  open(path, "wb+") do |file|
   file << open(url).read
  end
  return true
rescue
  return false
  end
end

puts Dir.pwd
CSV.foreach("C/Users/b40ssr/RubymineProjects/Bygma/convert/konvertera.CSV",     headers:true) do |row|
 downloadFile(row[0], row[1])
end

所以我得到的错误是 C:/Ruby23/lib/ruby/2.3.0/csv.rb:1265:in `initialize': 没有这样的文件或目录@rb_sysopen - C/Users/b40ssr/RubymineProjects/Bygma/convert/konvertera.CSV (Errno: :ENOENT)

我知道目录有问题,但我似乎无法弄清楚它是什么。

【问题讨论】:

  • 您的错误告诉您是什么原因造成的。没有您指定名称的文件或目录,因此无法打开任何内容。
  • 但是当我单击文件夹中的目录时,它与代码中的目录相同,但 .CSV 结尾除外。 C:\Users\b40ssr\RubymineProjects\Bygma\convert
  • 你确定该文件实际上是一个 .csv 文件吗?尝试在命令行上转到该位置并输入(在 Windows 上)dir 或(在 Unix 系统上)ls
  • 当我这样做时 csv 文件打开
  • ...好吧,我刚刚注意到在CSV.foreach 的文件路径中,您写的是C\ 而不是C:\ 。尝试改变它,看看它是否能解决任何问题。

标签: ruby csv


【解决方案1】:

首先,你可以使用相对路径或者只使用“C:/”

其次,您正在尝试打开 CSV 文件的每一行??

CSV.foreach("C/Users/b40ssr/RubymineProjects/Bygma/convert/konvertera.CSV")。这将遍历 CSV 文件中的每一行。 是否要打开目录中的每个 CSV 文件??

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 2015-05-11
    • 1970-01-01
    • 2021-07-15
    相关资源
    最近更新 更多