txt 파일 안에 특정한 구분자로 구분된 세 그룹의 수치의 평균, 최대값을 구하기
조회수 658회
메모장 파일 txt 파일에
======
1.234234
4
5
3
=======
=======
2323
343
=======
이런 식으로 ======
에 따라 세 그룹으로 나뉘어서 그 값들의 평균이나 최댓값을 구해야 하는데 이 세그룹을 구분지을 수 있는 코드를 잘 모르겠습니다. 두번째 그룹은 안에 아무것도 없다는 뜻입니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
- 파일을 한 줄씩 읽어서,
- 읽은 내용이 ======== 이면, 새로운 그룹을 시작
- 읽은 내용이 숫자값이면, 그룹에 숫자를 등록
- 두가지에 해당되지 않는다면 무시
이렇게 하면, 각 그룹에 숫자를 담을 수 있습니다. 이후에는 각 그룹에 등록된 숫자들의 평균과 최대값을 구하면 됩니다.
위에 글로 쓴 내용을 파이썬 코드로 만들어보면 대략 다음과 같습니다.
num_groups = [] with open('dat.txt', 'rt') as f: group = [] first_sep = True for line in f.readlines(): line = line.strip() if '===' in line: if not first_sep: num_groups.append(group[:]) group = [] first_sep = False continue try: num = float(line) group.append(num) except: continue
평균과 최대값은 쉬우니까 스스로 해보세요.
댓글 입력