파이썬의 open함수 관련해 질문드립니다.

조회수 527회

1.open함수와 io모듈의 open메서드는 똑같은 것인가요?

아니면 비슷한 기능이지만 서로 별개의 함수인가요?

2.open함수로 파일을 연 후, read()로 파일 내용을 읽을 때,


 f = open('a.txt', 'r')

 s =  f.read()

위 코드에서 read()가 실행될 때,

실제로 하드디스크에 저장되어 있는 a.txt파일에 접근해 읽는 작업을 하게 되는 것인지,

아니면, open()가 실행될 때 하드디스크에 저장되어 있는 a.txt 파일 내용은

f객체 안에 담겨져 메모리 상의 어느 위치에 저장되는 것이고,

이후 read()를 실행하게 되면,

f객체에 접근해 (하드디스크가 아닌)메모리에 저장되어 있는

파일 내용을 읽어오게 되는 것인지 궁금합니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • io stream 에 대해서 학습이 필요할 듯 합니다.

    python 은 어렵습니다. 너무 추상화되어 있어서 다루기 편한것이지 쉬운것(!)이 아닙니다.

    open 했다고 해서 파일내용이 메모리에 저장되는 것이 아닙니다. 말 그대로 파일을 open 하는 겁니다. 즉 쉽게 파일에 대한 포인터 같은 역활을 합니다.

    실제 메모리에 저장하는 것은 read 류 메소드를 호출할때 입니다.

    먼저 c 로 파일 IO를 학습해보시길 권합니다.

    fopen, fgets, seek 같은 함수를 사용해보면 파일에서 읽어드릴때 모습을 더 구체적으로 알 수 있고 파이썬이 얼마나 추상화를 하는지도 알 수 있습니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)