相关疑难解决方法(0)

我收到错误:在Ruby中编写了大量文件后打开的文件过多

我有一个脚本生成16000个html页面并将其保存在系统中.1013页后,我收到错误:打开文件太多.

这是生成文件的Ruby代码

FileUtils.mkdir_p "public/users_directory/#{DEFAULT_COUNTRY_CODE}/#{prefix}"
FileUtils.mkdir_p "public/users_directory/#{DEFAULT_COUNTRY_CODE}/#{prefix}/#{n/1000}"

html_file = File.new("public/users_directory/#{DEFAULT_COUNTRY_CODE}/#{prefix}/#{n/1000}/#{n}.html", "w")
html_file.write(html)
html_file.close
Run Code Online (Sandbox Code Playgroud)

你可以看到我在最后一行关闭文件....

有人知道我在做错了什么吗?我有Ubuntu 8.04.4 LTS

非常感谢

编辑:

这是整个脚本

    def self.fetching_directory_page(n=1, letter = nil)
      id = letter == '' ? "" : "/#{letter.upcase}"
      url = "this is a valid url :)"
      agent = WWW::Mechanize.new
      page = agent.get(url)
      html = page.search('div#my_profile_body').to_html

      prefix = id == '' ? 'all' : letter
      FileUtils.mkdir_p "public/users_directory/#{DEFAULT_COUNTRY_CODE}/#{prefix}"
      FileUtils.mkdir_p "public/users_directory/#{DEFAULT_COUNTRY_CODE}/#{prefix}/#{n/1000}"

      html_file = File.new("public/users_directory/#{DEFAULT_COUNTRY_CODE}/#{prefix}/#{n/1000}/#{n}.html", "w")
      html_file.write(html)
      html_file.close

      puts "+ CREATED #{prefix}/#{n/1000}/#{n}.html" 

      new_url = page.parser.xpath("//a[@class='next_page']")[0]['href'] rescue nil

      if new_url.present? …
Run Code Online (Sandbox Code Playgroud)

ruby ubuntu ruby-on-rails

1
推荐指数
1
解决办法
7123
查看次数

标签 统计

ruby ×1

ruby-on-rails ×1

ubuntu ×1