초기 통과 후 파일 반복의 어려움
프로그래밍 시 파일 반복은 일반적인 작업입니다. 그러나 때로는 예상치 못한 동작이 발생할 수 있습니다. 이 경우 Python에서 파일을 반복하면 처음에는 작동하지만 이후에는 출력이 생성되지 않습니다. 이는 다음 코드로 예시됩니다.
import codecs file = codecs.open('baby1990.html', 'r',encoding='utf-8', errors='ignore') for line in file.readlines(): print(line)
이 코드를 실행하면 파일 내용이 올바르게 인쇄됩니다. 그러나 file.readlines()에서 for line을 사용하여 동일한 파일을 반복하려는 두 번째 시도는 출력을 생성하지 않습니다.
이 동작은 파일 반복의 특성에서 비롯됩니다. 파일을 반복할 때 파일 읽기를 담당하는 포인터는 파일 끝에 도달할 때까지 전진합니다. 초기 반복에서는 포인터가 파일의 시작부터 끝까지 진행됩니다. 두 번째 반복을 시도할 때 포인터는 여전히 파일 끝에 있고 더 이상 읽을 데이터가 없습니다.
이 문제를 해결하려면 파일 포인터를 시작 부분으로 재설정해야 합니다. 이는 f.seek(0) 메서드를 사용하여 명시적으로 포인터 위치를 변경하거나 파일을 닫았다가 다시 여는 방식으로 수행할 수 있습니다.
또는 Python의 with 문을 사용할 수도 있습니다. 실행하여 파일 포인터가 재설정되었는지 확인합니다. 예는 다음과 같습니다.
with codecs.open('baby1990.html', 'r',encoding='utf-8', errors='ignore') as file: for line in file.readlines(): print(line)
이 코드를 사용하면 동일한 문제가 발생하지 않고 여러 번 반복할 수 있습니다.
위 내용은 첫 번째 통과 후 Python 파일 반복이 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!