웹 개발 메모장
[파이썬] .txt 파일의 총 줄 수 구하기 (파일입출력 예제) 본문
파일 입출력 및 enumerate 활용
문제) .txt파일을 읽어와서 해당 파일의 line 수를 구하는 프로그램은 만들어보자
해설)
예를들어 다음과 같은 .txt 파일이 있다고 하겠습니다.
우선 파일을 열고 닫아야 하니까 아래 처럼 코딩합니다.
1 2 3 4 5 6 7 | myFile = open('practice.txt', 'r') # # # myFile.close() | cs |
이제 ###에 들어갈 내용을 코딩하면 됩니다.
방법 1. read()
라인 수를 구한다는 이야기는 줄바꿈 문자('\n') 의 갯수를 구한다는 이야기와 같으므로
1 | print(myFile.read().count("\n")+1) | cs |
이렇게 파일 전체를 읽어 문자열로 저장하고 문자열 내의 '\n' 갯수+1 을 구하는 것도 방법이지만
비추입니다. 파일 크기가 어떨지도 모르고... 줄 바꿈 문자를 센다는게 완전한 로직이 아닌 것 같습니다..
방법 2. readLine()
아니면 readLine()을 통해 반복문을 활용해 읽어들일 값이 없을 때 까지 매번 count를 해주는 방법도 있습니다.
1 2 3 4 5 6 | cnt = 0 while True: if myFile.readline()=='': break cnt += 1 print(cnt) | cs |
방법 3. readLines()
readLines() 를 이용하면 보다 쉽게 구할 수 있습니다.
readLines() 는 줄 바꿈을 기준으로 매 줄을 각각 리스트의 요소로 하는 리스트를 반환해주기 때문에 반환되는 리스트의 길이를 구하면 그게 답이됩니다.
1 | print(len(myFile.readlines())) | cs |
방법 4. enumerate()
enumerate() 를 이용하면 파일 내용의 각각 line을 index와 연결되있는 데이터를 반환합니다.
그것을 리스트로 만들면, 즉 list(enumerate(myFile)) 은 다음과 같은 list를 반환합니다.
이를 활용해서 리스트 마지막 튜플의 첫번째 요소를 구해 +1을 해주면 답이 될 수 있습니다.
1 | print(list(enumerate(myFile))[-1][0]+1) | cs |
리스트의 길이를 구해도 되지만 방법3과 겹치므로 위 처럼 코딩해보았습니다.
'옛날.. > 파이썬' 카테고리의 다른 글
[파이썬] 3항 연산자 (0) | 2018.05.21 |
---|---|
[파이썬] 년도별 신생아 수 구하기 (파일입출력 예제) (0) | 2017.12.11 |
[파이썬] 삼각형 그리기 예제들 (0) | 2017.12.11 |
[파이썬] for 문 기본 구조 (0) | 2017.11.29 |
[파이썬] 조건문, 참과 거짓 (0) | 2017.11.29 |