【发布时间】: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:\。尝试改变它,看看它是否能解决任何问题。