Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字符串到路径名Ruby_Ruby_Parsing_Csv_Path - Fatal编程技术网

字符串到路径名Ruby

字符串到路径名Ruby,ruby,parsing,csv,path,Ruby,Parsing,Csv,Path,我试图读取包含文件路径的csv列并移动该文件。我可以迭代csv并将对象作为字符串。但是,当我打电话像这样移动文件时 require 'csv' require 'fileutils' CSV.foreach('file.csv', :headers => true) do |csv_obj| path = csv_obj['Filename'] name = path.split('/')[2] dest = 'folder/' FileUtils.mv "#{

我试图读取包含文件路径的csv列并移动该文件。我可以迭代csv并将对象作为字符串。但是,当我打电话像这样移动文件时

require 'csv'    
require 'fileutils'

CSV.foreach('file.csv', :headers => true) do |csv_obj|
  path = csv_obj['Filename'] 
  name = path.split('/')[2]
  dest = 'folder/'
  FileUtils.mv "#{path}", "#{dest}"
end
我得到:

fileutils.rb:1515:in'stat':没有这样的文件或目录-Spam/Jane April-45 FAC(IDRI 2)/JaneA somewebsite 2014-03-25 040024-IDRI.pdf(Errno::enoint)

在此文件中,csv的第一次迭代,
csv_obj

“Spam/Jane April-45 FAC(IDRI 2)/JaneA somewebsite 2014-03-25 040024-IDRI.pdf”


文件和目标文件夹都存在。我认为错误在于转义字符。我试过使用
Shellwords.escape
pathname
类,
系统移动
,和
重命名
,我不认为字符转义是你的问题。更有可能的是,相对于运行ruby脚本的位置,路径不正确。试试像这样的东西

# get the absolute path of your script's location
current_dir = File.expand_path(File.dirname(__FILE__))

# get absolute path of your .pdf file
abs_path = File.join(current_dir, path)

if !File.exists?(abs_path)
    puts "#{abs_path} does not exist"
end

Spam/Jane April-45 FAC(IDRI 2)/JaneA somewebsite 2014-03-25 040024-IDRI.pdf
是否相对于当前目录?如果
csv_obj
是字符串,那么什么是
csv_obj['Filename']
?是的,此ruby文件位于Spam文件夹所在的基本目录中。csv_obj是一个字符串。我尝试了下面的建议,但仍然收到相同的错误。名称最初用于重命名文件尝试。