使用 Ruby 在多个目录中打开相同的文件名
Opening same file names in multiple directories using Ruby
希望使用 Ruby 执行以下操作:
- 目录 A 和目录 B 将具有相同数量的 XML 个文件以及相同的文件名。
第 1 步:
* 进入目录 A(目录 A 有 X 个 XML 个文件)
* 在目录A中,取第一个XML文件并保存文件名,同时打开文件
第 2 步:
* 进入目录 B(目录 B 将有与目录 A 相同数量的 XML 个文件,文件名相同)
* 在目录 B 中,打开在目录 A 中保存和打开的相同 XML 文件名。
第 3 步:(我已经完成了这部分)**
*比较两个文件(我已经完成了这部分)**
第 4 步:
* 对两个目录中的所有 XML 个文件重复此操作。
我已经尝试了一些方法,但由于某种原因,每个文件都会发生循环,而不是一次,而且 Dir B 的第二个循环也没有执行:
id_dir = "#{Dir.pwd}"+"/id_responses"
ht_dir = "#{Dir.pwd}"+"/ht_responses"
Dir.foreach(id_dir) do |id_file|
next if id_file == '.' or id_file == '..'
id_file = File.open("#{id_dir}/#{id_file}", 'r')
doc1 = Nokogiri::XML::Document.parse(File.open(id_file))
Dir["#{Dir.pwd}"+"/ht_responses/#{id_file}"].each do |ht_file|
next if id_file == '.' or id_file == '..'
doc2 = Nokogiri::XML::Document.parse(File.open(ht_file))
end
end
无需遍历其他目录,只需查看是否存在同名文件即可。
id_dir = "#{Dir.pwd}"+"/id_responses"
ht_dir = "#{Dir.pwd}"+"/ht_responses"
Dir.foreach(id_dir) do |id_file|
next if id_file == '.' or id_file == '..'
id_file_path = File.join(id_dir, id_file)
ht_file_path = File.join(ht_dir, id_file)
next unless File.exist?(ht_file_path)
doc1 = Nokogiri::XML::Document.parse(File.open(id_file_path, 'r'))
doc2 = Nokogiri::XML::Document.parse(File.open(ht_file_path, 'r'))
end
希望使用 Ruby 执行以下操作:
- 目录 A 和目录 B 将具有相同数量的 XML 个文件以及相同的文件名。
第 1 步: * 进入目录 A(目录 A 有 X 个 XML 个文件) * 在目录A中,取第一个XML文件并保存文件名,同时打开文件
第 2 步: * 进入目录 B(目录 B 将有与目录 A 相同数量的 XML 个文件,文件名相同) * 在目录 B 中,打开在目录 A 中保存和打开的相同 XML 文件名。
第 3 步:(我已经完成了这部分)** *比较两个文件(我已经完成了这部分)**
第 4 步: * 对两个目录中的所有 XML 个文件重复此操作。
我已经尝试了一些方法,但由于某种原因,每个文件都会发生循环,而不是一次,而且 Dir B 的第二个循环也没有执行:
id_dir = "#{Dir.pwd}"+"/id_responses"
ht_dir = "#{Dir.pwd}"+"/ht_responses"
Dir.foreach(id_dir) do |id_file|
next if id_file == '.' or id_file == '..'
id_file = File.open("#{id_dir}/#{id_file}", 'r')
doc1 = Nokogiri::XML::Document.parse(File.open(id_file))
Dir["#{Dir.pwd}"+"/ht_responses/#{id_file}"].each do |ht_file|
next if id_file == '.' or id_file == '..'
doc2 = Nokogiri::XML::Document.parse(File.open(ht_file))
end
end
无需遍历其他目录,只需查看是否存在同名文件即可。
id_dir = "#{Dir.pwd}"+"/id_responses"
ht_dir = "#{Dir.pwd}"+"/ht_responses"
Dir.foreach(id_dir) do |id_file|
next if id_file == '.' or id_file == '..'
id_file_path = File.join(id_dir, id_file)
ht_file_path = File.join(ht_dir, id_file)
next unless File.exist?(ht_file_path)
doc1 = Nokogiri::XML::Document.parse(File.open(id_file_path, 'r'))
doc2 = Nokogiri::XML::Document.parse(File.open(ht_file_path, 'r'))
end