파이썬에서 새 파일을 열 수 없습니다. ls -l /proc/PID/fd
으로 조사했을 때 나는 파이썬 프로세스를 위해 많은 파일을 열어 보았다. 내가 사용중인 모듈은 분명히 많은 파일을 열고 닫지 않은 것입니다.파일 식별자가 없을 때 파이썬에서 파일을 닫는 방법
파일을 연 모듈과 관련된 개체를 삭제하여 파일을 닫을 수 있기를 기대했지만 아무 일도 없었습니다.
는 또한 파일이 가비지 컬렉션 어딘가에 개체를 볼 것으로 예상했지만, 나는이 함께 열려있는 파일을 닮은 아무것도 보지 못했다 :for obj in gc.get_objects():
if hasattr(obj, 'read'):
print(obj)
내가 파이썬을 종료 할 때 파일이 사라집니다.
'ls'의 출력을 가질 수 있습니까? 얼마나 많은 파일을 말하고 있습니까? – Veedrac
아마 어떤 백 채널을 통해 그들을 닫으려고해서는 안됩니다 ... 아마도 라이브러리의 버그 (또는 어떻게 사용하고있는 것일까?) 일 것입니다. 누수가 어디서 왔는지 파악하고 파일을 적절히 닫아야합니다. – FatalError
요즘 파일을 여는 데 권장되는 방법은 'with fid : fid : ...'여야합니다. 이것은'with' 블록이 끝날 때 파일을 직접 닫아야합니다. 라이브러리에서 파일을 여는 방법에 대한 코드 스 니펫이 있습니까? –