我正在寫一個代碼,逐行讀取一個文本檔案或csv檔案,其中包含url,我想找出每個url的id,并列印或存盤在文本檔案中,但當我這樣做時,我得到一個錯誤,當我使用回圈之前,我能夠得到它逐行列印。有沒有人可以幫助我。 下面是我的代碼示例。
line_num=0。
File.open('/Users/divyanshu/python_imdb/channels/url.txt').each do |line|
video_links = "#{line_num = 1} #{line}"/span>
# 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', ')
把視頻_di
結束。
我得到的錯誤是這樣的
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}"
將視頻_鏈接
end
uj5u.com熱心網友回復:
字串通常不#respond_to? :each
堆疊跟蹤告訴你所有你需要知道的東西:
#String:0x00007fef3d0907c0的未定義方法`each'(NoMethodError)
即使假設帶有尾部空格的/channels /是檔案路徑的有效部分,File#open也會回傳一個File物件,而不是一個行的集合。按照寫法,video_links是一個字串,而不是Hash或Array這樣的集合,而且也沒有String#each方法。由于for-in回圈是#each的語法糖,所以物件無法回應該方法。
取決于你是想把整個檔案變成一個行陣列,還是想逐行操作,你應該使用以下的替代方法之一:
File#each_line,繼承自IO。例如:
File.open("path/to/file"/span>).each_line
File#readlines,也繼承自IO。例如:
File.readlines("path/to/file"/span>)
uj5u.com熱心網友回復:
對@Todd的回答進行補充。在你的代碼片段中還有一個問題,正如我在評論中提到的。video_links變數是屬于String類。
- 它將只包含檔案的最后一行 。
- 你不能對它進行迭代 。
例如,一個file.txt如下:
one
二
三
四
還有代碼:
File.open('file.txt').each do |line|
var = line
結束
將var
#=> "四"
因此,根據你的例子,你應該把你的變數video_links定義為一個(空的)陣列,并把檔案的行數追加到迭代中。
例子:
video_links = []
lines_in_file = File.readlines('/Users/divyanshu/python_imdb/channels/url.txt'/span>)
lines_in_file.each do |line|
video_links.append line
end
video_links.each do|video_link|
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', ')
把視頻_di
結束。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/313862.html
標籤:
