official documentation은 지정하지 않습니다. EOFError는 "End of file error (파일 끝 오류)"를 의미하지만 정확히 무엇을 의미합니까? 파일 판독기가 파일 끝에 도달하면 오류 메시지가 나타나지 않습니다.Ruby 파일 입출력의 EOFError 란 무엇입니까?
9
A
답변
13
는 EOFError가 IO, 모든 입력/출력의 기준이되는 클래스의 모두 편리하다 :
import_file = File.open(filename)
begin
while (line = import_file.readline)
sline = FasterCSV.parse_line(line)
# Do stuff with sline
end
rescue EOFError
# Finished processing the file
end
같은 일이 참고 EOFError없이 달성 될 수있다 : 예를 들어
루비에서. 이제 유닉스 핵심 개념을 기억하자. 모든 것이 파일이다. 여기에는 소켓이 포함됩니다. 그래서 소켓을 열어서 읽는 중이라면 예외적 인 상황에서 파일의 끝을 보게 될 것입니다.
모든 예제는 실제로 유용하지 않은 EOFError (텍스트 파일을 읽는 중)의 사소한 용도를 보여줍니다. 그러나 net/http 또는 소켓을 많이 사용하는 다른 클래스를 통해 파고 시작하면이 예외가 사용되는 것을 볼 수 있습니다.
편집 됨 응답을 그물/FTP
def getline
line = @sock.readline # if get EOF, raise EOFError
line.sub!(/(\r\n|\n|\r)\z/n, "")
if @debug_mode
print "get: ", sanitize(line), "\n"
end
return line
end
9
EOFError (파일 끝 오류)는 이미 파일의 끝을 참조하고있는 파일 객체에서 작업을 수행하려고 할 때 발생합니다. 이 예에서는 행이 존재하지 않을 때 readline
으로 시도하고 있습니다.
File.open(filename).each do |line|
sline = FasterCSV.parse_line(line)
# Do stuff with sline
end
관련 문제
- 1. EOFError : Net :: HTTP에서 파일 끝에 도달했습니다.
- 2. Ruby - ppp.rb 란 무엇입니까?
- 3. Ruby 관점에서 edit_post_path 란 무엇입니까
- 4. 파일 만들기 란 무엇입니까?
- 5. EOFError in Devise/passwordsController # create
- 6. 아파치 낙타 입출력의 JAXB
- 7. ruby-prof "결과"열에 "대기"란 무엇입니까?
- 8. * .cf7 파일 확장자 란 무엇입니까?
- 9. "ctr"파일 확장자 란 무엇입니까?
- 10. 스레드 란 무엇입니까 (스레드 란 무엇입니까?)?
- 11. ASP.Net MVC 란 무엇입니까?
- 12. ICSharpCode.SharpZipLib.ZipEntry.Flag 란 무엇입니까?
- 13. Ruby on Rails의 맥락에서 참조 될 때 미들웨어 란 무엇입니까?
- 14. 해시 함수 란 무엇입니까?
- 15. mysql에서 binlog 란 무엇입니까?
- 16. 존 식별자 란 무엇입니까?
- 17. ResolveAssemblyReference.cache 란 무엇입니까?
- 18. CGI 란 무엇이며 CGI 스크립트 란 무엇입니까?
- 19. OpenVMS에 대한 inotify 란 무엇입니까?
- 20. 정확히 "키 컨테이너"란 무엇입니까?
- 21. Ruby GPX 파일 파서
- 22. 이 문맥에서 문서 란 무엇입니까?
- 23. 개발 프레임 워크 란 무엇입니까? IDE 란 무엇입니까?
- 24. 버퍼 란 무엇입니까? 버퍼링 된 읽기 및 쓰기 란 무엇입니까?
- 25. DataContractTranslator 란 무엇입니까?
- 26. "분리 뮤텍스"란 무엇입니까?
- 27. 프로그래밍 언어 란 무엇입니까?
- 28. CSS - @page 란 무엇입니까?
- 29. Java의 직렬화 란 무엇입니까?
- 30. "기호 경고"란 무엇입니까?
+1 더 나은 대답을 위해. – Swanand
감사합니다. Swanand. 나는 예제 코드를 내가 좋아하는 것을 사용하여 빚지고있다. "/usr/lib/ruby/1.8/net/ -name * .rb -exec grep EOFError/dev/null '{}'\;" –