답변:
항상을 사용해야 open()
합니다.
현상태대로 문서의 상태 :
파일을 열 때이 생성자를 직접 호출하는 대신 open ()을 사용하는 것이 좋습니다. 파일은 형식 테스트에 더 적합합니다 (예 : "isinstance (f, file)"작성).
또한 Python 3.0부터 file()
제거되었습니다 .
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)
보시다시피, 둘 다 존재해야 할 충분한 이유가 있고 둘 다에 대한 명확한 사용 사례가 있습니다.
with
명령문 으로 열어야 합니다. with open(filename, 'r') as f: \ for line in f: \ process(line)
. 이것은 명시적인 닫기를 피합니다. Python 2.6 이상에서는 기본적으로이 with
문장을 지원합니다 . Python 2.5에서는 from __future__ import with_statement
코드 맨 위에 추가해야합니다 .
file
클래스에는 파일을 with
명령문을 통해 열 때마다 자동으로 호출되는 특수 메소드가 장착되었습니다 . 이러한 특수한 방법을 사용하면 파일을 올 바르고 안전하게 열고 닫을 수 있습니다.
파일을 열 때만 open ()을 사용하십시오. file ()은 실제로 3.0에서 제거되고 있으며 현재 더 이상 사용되지 않습니다. 그들은 일종의 이상한 관계를 가지고 있지만, file ()은 지금 가고 있으므로 더 이상 걱정할 필요가 없습니다.
다음은 Python 2.6 문서에서 가져온 것입니다. [브래킷 재료]가 추가했습니다.
파일을 열 때이 [file ()] 생성자를 직접 호출하는 대신 open ()을 사용하는 것이 좋습니다. 파일은 형식 테스트에 더 적합합니다 (예 : isinstance (f, file) 작성).