我在尝试从目录中打开文件时遇到了一个问题(该目录在命令行中提供)
我的代码如下:
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打印出文件名,它就可以了。但是当我尝试打开文件并转储其内容时,却没有。
我知道我错过了一些不能确定它是什么的东西。
答案 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
将返回一个数组,其中每个元素都是文本的一行。