텍스트 파일에서 바코드를 가져 와서 해당 바코드에 대한 웹 서비스를 검색하고 결과를 다운로드하는 루비 스크립트를 만들고 싶습니다.ruby if-block 안에 url을 'file.open.read'할 수 없습니다.
먼저 웹 서비스 다운로드를 테스트 해 보았습니다. 파일에서 쿼리를 하드 코딩하면 작업이 정상적으로 작동합니다.
result_download = open('http://webservice.org/api/?query=barcode:78686112327', 'User-Agent' => 'UserAgent [email protected]').read
모두 정상적으로 작동합니다.
텍스트 파일에서 바코드를 가져 와서 쿼리를 실행하면 문제가 발생합니다. 이 문제가 발생하면 어떻게 든 생성하는 문자열이 유효한 URL이 아니기 때문에
가/home/user/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/open-uri.rb:37:in `initialize': No such file or directory @ rb_sysopen - http://webservice.org/api/?query=barcode:78686112327', 'User-Agent' => 'UserAgent [email protected]' (Errno::ENOENT)
내가 알아낼 수 없습니다 루비는 비를 열려고 :
IO.foreach(filename) {|barcode| barcode
website = "'http://webservice.org/api/?query=barcode:"+barcode.to_str.chomp + "', 'User-Agent' => 'UserAgent [email protected]'"
website = website.to_s
mb_metadata = open(website).read
}
이것의 결과는 존재하지 않는 파일이거나 for 루프에서이 모든 작업을 수행하고 있으며/url 파일이 존재하지 않는 문제입니다. open (website) .read 대신 open (website) .write를 사용해 보았지만 같은 오류가 발생합니다.
도움을 주시면 감사하겠습니다.
정말 멋지 네요. 도와 주셔서 정말 감사합니다. 나는 경험이별로 없으며 각 요소를 올바르게 수정하는 데 중점을 둡니다. 네가 가진 우아한 옷차림으로 생각하지도 않았어. 다시 한번 감사드립니다. – Jack