使用Ruby

时间:2016-06-15 19:57:53

标签: ruby

我在尝试从目录中打开文件时遇到了一个问题(该目录在命令行中提供)

我的代码如下:

require 'optparse'
OptionParser.new do |opts|
   opts.banner = "Usage: rubyfile.rb [options]"

   options[:c] = ""
   opts.on( '-c', '--dir DILE', "Specify Directory with input files" ) do |e|
      options[:c] = e
   end

   options[:o] = ""
   opts.on( '-o', '--dir DILE', "Specify Output file" ) do |f|
      options[:c] = f
   end
end.parse!

out_file = File.open( options[:o], "a" )
dir_open = Dir.open( options[:c] )

Dir.foreach(dir_open) do | in_file |
   next if File.directory? in_file
   if( in_file.include? ".txt" )
      input_file = File.open( in_file, "r" )
      File.foreach(input_file).with_index do | line, line_s |
         puts line
      end
   end
end

如果我尝试使用puts in_file打印出文件名,它就可以了。但是当我尝试打开文件并转储其内容时,却没有。

我知道我错过了一些不能确定它是什么的东西。

1 个答案:

答案 0 :(得分:0)

这个大块就在这里:

  input_file = File.open( in_file, "r" )
  File.foreach(input_file).with_index do | line, line_s |
     puts line
  end

您可以改为编写File.readlines(in_file).each { |f| puts f }

File.readlines将返回一个数组,其中每个元素都是文本的一行。