문제

의 차이는 무엇인 fileopen Python?을 사용해야 하는 경우 어느 하나?(말에 2.5)

도움이 되었습니까?

해결책

당신은 항상 사용 open().

문서 상태:

파일을 열 때,그것은 바람직 를 사용하 open()을 호출하이 생성자를 직접 있습니다.더 파일 에 적합한 유형 테스트(예를 들어, 쓰"isinstance(f,파일)").

또한, file() 이 제거되었습 이후 파이썬 3.0.

다른 팁

두 가지 이유:Python 철학의"거기서 해야 하나 그것을 할 수있는 방법"과 file 는 것입니다.

file 실제 종류를 사용하여(예를들면 file('myfile.txt') 가 생성자를 호출하). open 공장 기능을 반환하는 파일 개체입니다.

Python3.0 file 가동되는 것에 내장되어에 의해 구현되는 여러 개의 클래스 io 라이브러리(비슷한 Java 버퍼드 독자,etc.)

file() 은 형식,다음과 같 int 또는 목록입니다. open() 하는 기능 파일 열기,그리고 반환합니다 file 체입니다.

이 경우의 예를 사용해야 합 열기:

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

이 경우의 예를 사용해야 합 file:

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

당신이 볼 수있는 좋은 이유를 모두를 존재하고,분명한 사용 사례에 대한 모두.

기능적으로,두 가지는 같은; open 전화 file 어쨌든,그래서 현재 차이점은 문제의 스타일입니다.이 Python 문서 를 사용하여 추천 open.

파일을 열 때,그것은 사용하는 것이 바람직하 open()을 호출하여 파일 생성자를 직접 있습니다.

그 이유는 향후 버전에서 그들이 보장되어 있지 않은 동일한(open 가 될 것이다 공장 기능을 반환하는 개체의 다른 유형은 경로에 따라 그것의 개방).

만 사용하 open()을 열어 파일이 있습니다.파일의()는 실제로 존재에서 제거 3.0,그리고 그것은 사용되지 않습니다.그들의 종류 이상의 관계,그러나 파일을()은 지금,그래서 거기에 더 이상 걱정할 필요가 없습.

에서 다음과 같습니다 Python2.6docs.[브래킷 재료]추가 기회입니다.

파일을 열 때,그것은 사용하는 것이 바람직하 open()을 호출하는 이는[파일()]생성자를 직접 있습니다.파일이 더 적합한 유형 테스트(예를 들어,쓰기 isinstance(f,파일)

에 따르면 미스터 반로 섬이지만,open()현재는 별칭에 대한 파일에()를 사용해야 한다 open()기 때문에 이것을 바꾸고자 노력하고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top