【发布时间】:2020-09-28 13:21:21
【问题描述】:
我正在编写代码来逐行读取包含 url 的文本文件或 csv 文件,并且我想要输出每个 url 的 id 并打印或存储在文本文件中,但是当我这样做时,当我使用在循环之前循环我能够逐行打印它。任何人都可以帮助我。 下面是我的代码示例。
line_num=0
File.open('/Users/divyanshu/python_imdb/channels/url.txt').each do |line|
video_links = "#{line_num += 1} #{line}"
# puts video_links
for video_link in video_links
video_lin = video_link.gsub('https://www.youtube.com/watch?v=', '')
video_di = video_lin.gsub('?utm_source=komparify&utm_campaign=site&utm_medium=detailpage', '')
puts video_di
end
这是我遇到的错误
Traceback (most recent call last):
2: from /Users/divyanshu/python_imdb/url_validation.rb:6:in `<main>'
1: from /Users/divyanshu/python_imdb/url_validation.rb:6:in `each'
/Users/divyanshu/python_imdb/url_validation.rb:10:in `block in <main>': undefined method `each' for #<String:0x00007fef3d0907c0> (NoMethodError)
如果我只运行这部分代码,它工作正常。
line_num=0
File.open('/Users/divyanshu/python_imdb/channels/url.txt').each do |line|
video_links = "#{line_num += 1} #{line}"
puts video_links
end
【问题讨论】:
-
正如错误所说,
video_links是String,您无法对其进行迭代。在遍历文件中的行之后,这个变量将只有最后存储的值。或者问题可能在此之前由于空间 -channels /url.txt -
@Seshadri_C 如果删除空间错误是一样的
-
我创建了一个答案来解释我的评论。
标签: ruby ruby-on-rails-3 ruby-on-rails-4 rubygems ruby-on-rails-5