ruby 中的循环不起作用,从 jpeg 中提取 exif 元数据
loop in ruby not working, pulling exif meta from jpeg
我似乎无法让这个循环工作。总菜鸟 ruby.
working_dir.each do |x|
puts x
puts EXIFR::JPEG.new('/home/alan/workspace/ruby/latlong/#{x}').gps.latitude
end
我明白了
No such file or directory @ rb_sysopen - /home/alan/workspace/ruby/latlong/#{x} (Errno::ENOENT)
我正在对路径进行硬编码。请帮忙。我正在尝试从 jpeg 目录中提取 exif 元数据。
这样的事情怎么样:
folder_which_contains_jpegs = 'workspace/ruby/latlong'
folder_path = File.join(Dir.pwd, folder_which_contains_jpegs) # assume your current dir is `/home/alan`
unless File.directory?(folder_path)
fail "Error: the directory #{folder_path} doesn't exist"
end
def jpeg_file_list(path, &block)
Dir.glob(path + '/**/*.jpeg').each(&block)
end
jpeg_file_list do |image_path|
puts image_path
puts EXIFR::JPEG.new.image_path.gps.latitude
end
这样的东西行得通吗?
如评论中所述,由于单引号字符串中缺少字符串插值,您遇到了错误。尝试将单引号改为双引号:
working_dir.each do |x|
puts EXIFR::JPEG.new("/home/alan/workspace/ruby/latlong/#{x}").gps.latitude
end
注:
- 虽然这是为了查明错误而发布的;按照 @CuriousMind 的回答,它可能有比你正在尝试做的更好的实现。
我似乎无法让这个循环工作。总菜鸟 ruby.
working_dir.each do |x|
puts x
puts EXIFR::JPEG.new('/home/alan/workspace/ruby/latlong/#{x}').gps.latitude
end
我明白了
No such file or directory @ rb_sysopen - /home/alan/workspace/ruby/latlong/#{x} (Errno::ENOENT)
我正在对路径进行硬编码。请帮忙。我正在尝试从 jpeg 目录中提取 exif 元数据。
这样的事情怎么样:
folder_which_contains_jpegs = 'workspace/ruby/latlong'
folder_path = File.join(Dir.pwd, folder_which_contains_jpegs) # assume your current dir is `/home/alan`
unless File.directory?(folder_path)
fail "Error: the directory #{folder_path} doesn't exist"
end
def jpeg_file_list(path, &block)
Dir.glob(path + '/**/*.jpeg').each(&block)
end
jpeg_file_list do |image_path|
puts image_path
puts EXIFR::JPEG.new.image_path.gps.latitude
end
这样的东西行得通吗?
如评论中所述,由于单引号字符串中缺少字符串插值,您遇到了错误。尝试将单引号改为双引号:
working_dir.each do |x|
puts EXIFR::JPEG.new("/home/alan/workspace/ruby/latlong/#{x}").gps.latitude
end
注:
- 虽然这是为了查明错误而发布的;按照 @CuriousMind 的回答,它可能有比你正在尝试做的更好的实现。