[python] Python-파일 대 사용시기

파이썬 fileopen파이썬 의 차이점은 무엇입니까 ? 언제 어느 것을 사용해야합니까? (내가 2.5에 있다고 말해봐)



답변

항상을 사용해야 open()합니다.

현상태대로 문서의 상태 :

파일을 열 때이 생성자를 직접 호출하는 대신 open ()을 사용하는 것이 좋습니다. 파일은 형식 테스트에 더 적합합니다 (예 : “isinstance (f, file)”작성).

또한 Python 3.0부터 file() 제거되었습니다 .


답변

두 가지 이유 : “한 가지 방법이 있어야한다”는 파이썬 철학은 file사라지고있다.

file실제 유형입니다 (예 : file('myfile.txt')생성자 호출). open파일 객체를 반환하는 팩토리 함수입니다.

파이썬 3.0에서는 file내장 된 io라이브러리 에서 라이브러리의 여러 클래스로 구현되는 것으로 이동할 것 입니다 (버퍼 리더 등이있는 Java와 비슷 함).


답변

file()int 또는 목록과 같은 유형입니다. open()파일을 여는 함수이며 file객체 를 반환 합니다.

다음은 open을 사용해야하는 경우의 예입니다.

f = open(filename, 'r')
for line in f:
    process(line)
f.close()

다음은 파일을 사용해야 할 때의 예입니다.

class LoggingFile(file):
    def write(self, data):
        sys.stderr.write("Wrote %d bytes\n" % len(data))
        super(LoggingFile, self).write(data)

보시다시피, 둘 다 존재해야 할 충분한 이유가 있고 둘 다에 대한 명확한 사용 사례가 있습니다.


답변

기능적으로는 두 가지가 동일합니다. 어쨌든 open전화 할 file것이므로 현재 차이점은 스타일의 문제입니다. 파이썬 문서를 사용하는 것이 좋습니다 open.

파일을 열 때 파일 생성자를 직접 호출하는 대신 open ()을 사용하는 것이 좋습니다.

그 이유는 이후 버전에서 그것들이 동일하다고 보장하지 않기 때문입니다 ( open출고 경로에 따라 다른 유형의 객체를 반환하는 팩토리 함수가 될 것입니다).


답변

파일을 열 때만 open ()을 사용하십시오. file ()은 실제로 3.0에서 제거되고 있으며 현재 더 이상 사용되지 않습니다. 그들은 일종의 이상한 관계를 가지고 있지만, file ()은 지금 가고 있으므로 더 이상 걱정할 필요가 없습니다.

다음은 Python 2.6 문서에서 가져온 것입니다. [브래킷 재료]가 추가했습니다.

파일을 열 때이 [file ()] 생성자를 직접 호출하는 대신 open ()을 사용하는 것이 좋습니다. 파일은 형식 테스트에 더 적합합니다 (예 : isinstance (f, file) 작성).


답변

Van Rossum에 따르면 open ()은 현재 file ()의 별칭이지만 나중에 변경 될 수 있으므로 open ()을 사용해야합니다.


답변