【问题标题】:Read next line during file IO in Ruby在 Ruby 中的文件 IO 期间读取下一行
【发布时间】:2017-06-29 06:56:18
【问题描述】:

我正在尝试使用 ruby​​ 导入文件并对其进行解析。有没有办法在文件导入中读取下一行?基本上我想看看一条特定的线是否在另一条重要线的 x 线之内。就像“x 短语”一样,在“y 短语”的 10 行之内。我没有办法做到这一点——我知道 Java 很简单。 谢谢!

【问题讨论】:

  • “我知道 Java 很简单” – 你能提供一个 Java 例子吗?
  • 你是什么意思“一次里面的文件导入”?
  • 嗨,基本上我所拥有的是 File.open(web_contents).each do |line|在里面我想要一个类似while循环的东西,它可以逐行检查。所以以下几行。在 java .nextLine() stackoverflow.com/questions/19595368/… 中。所以我试图找出一个红宝石替代品。谢谢
  • 如果您需要更精细的控制,请调用File.open(web_contents) do |file|(不带each)并在该块中调用file.readline,以便随时获取下一行。
  • 将文件导入为数组,然后使用数组切片按最大“距离”进行搜索。

标签: ruby-on-rails ruby file


【解决方案1】:

你也可以试试:

web_contents = "c:\\path\\to\\your\\file.txt"  

File.open(web_contents).each_with_index do |line, i|  
  line.chomp!  
  puts "line #{line}, i #{i}" # Do whatever you want to here  
end  

.each_with_index 方法为您提供一个索引i,您可以使用它来跟踪您在文件中的哪一行。然后简单的数学可以根据需要产生偏移量。

【讨论】:

    【解决方案2】:

    读取文件的行

    lines_array = IO.readlines('testfile')
    lines_array.each { |l| #Do your stuff with your line }
    

    Ruby Docs on IO

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-15
      • 1970-01-01
      • 2010-12-02
      • 2011-01-30
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      相关资源
      最近更新 更多