문제
의 차이는 무엇인 file
고 open
Python?을 사용해야 하는 경우 어느 하나?(말에 2.5)
다른 팁
두 가지 이유: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()기 때문에 이것을 바꾸고자 노력하고 있습니다.