我有一个脚本生成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)