파일에서 데이터 읽기
텍스트 파일을 읽을 때 바이트 스트림은 순차적으로 프로그램 입력에 입력되므로 파일은 데이터에 대한 순차적 액세스를 제공합니다. 즉, 파일에서 10번째 값을 읽어야 하는 경우 먼저 이전 9번째 값을 읽어야 합니다.
파일의 한 줄을 읽으면
readline()
메서드를 실행할 수 있습니다. 이 메서드는 파일 변수에서 호출됩니다.
Fin = open("input.txt")
s = Fin.readline()
키보드에서 읽을 때와 마찬가지로 읽기 문자열에 다양한 메서드를 적용할 수 있습니다(split()
, map()
등). 예를 들어 파일의 한 줄에 공백으로 구분된 두 개의 숫자가 있는 경우 다음과 같이 계산할 수 있습니다.
Fin = open("input.txt")
s = Fin.readline().split() # 공백에서 줄 분할 s = ["2007", "2021"]
a, b = 맵(int, s) # 목록 s의 모든 요소에 int() 메서드를 적용합니다.
# 즉, 문자열을 숫자로 변환
# a, b = int(s[0], s[1]) # 위의 라인과 동일합니다.
# a, b = [int(x) for x in s] # 제너레이터와 동일
read()
메서드는 파일의 전체 내용을 읽고 '\n
' 문자를 포함할 수 있는 문자열을 반환합니다. 정수 매개변수가 read()
메서드에 전달되면 지정된 문자 수 이상 읽히지 않습니다. 예를 들어 read(1)
.
메서드를 사용하여 파일을 바이트 단위로 읽을 수 있습니다.
파일이 열리면 파일의 현재 위치를 결정하는 포인터가 파일의 시작으로 설정되고 읽을 때 데이터 읽은 다음 위치로 이동합니다. 쓸 때 포인터는 다음 자유 위치로 이동합니다.