얼마 전에 python에서 텍스트파일 읽고 쓰는 방법을
정리해보았습니다.
이번에는 파이썬에서 텍스트파일의
총 Line 수를 가져오는 방법을
정리해보고자 합니다.
우선, 테스트용으로 할
텍스트파일을 아래와 같이
생성하였습니다.
위 파일을 가지고,
테스트를 진행하도록 하겠습니다.
txt 파일의 총 라인수를 가져오는 방법은
여러가지가 있습니다.
제가 정리하는 방법만 해도 4가지 이상입니다.
그리고 제가 모르는 방법이 더 있을 수도 있습니다.
그러니 편하신 방법으로 사용을 하시면 되실 것 같습니다.
우선, 제가 아는 방법들을
정리해보도록 하겠습니다.
1. read() 이용
read() 함수를 이용하여
라인 수를 가져올 수 있습니다.
전체 파일을 read 함수로 읽어서
문자열로 저장하고
개행문자(\n)의 갯수를 체크하는 것입니다.
실제 사용 예제는 다음과 같습니다.
f = open("D:/python/test.txt", 'r', encoding='UTF8' ) print("read함수 : %d" % (f.read().count("\n")+1))
위와 같이 해주시면 되십니다.
위 소스를 실행하면
결과는 다음과 같이 나오게 됩니다.
위처럼 라인수를 가져올 수 있습니다.
하지만 이 방법은
추천을 드리는 방법은 아닙니다.
파일의 크기가 얼마일지 알 수 없는 상황에서
파일을 전체로 가져와서
개행문자수를 센다는 것 자체가
별로 추천을 드리고 싶은 방법은 아닙니다.
2. readLine() 이용
이번에는 readLine 함수를 이용하여
체크하는 방법을
정리해보도록 하겠습니다.
방법은 1번과 비슷합니다.
다만, 1번은 한번에 다 가져왔다면
2번은 한개의 라인씩 가져와서
그 라인수를 반복문을 이용하여
체크하는 것입니다.
실제 사용 예제는
다음과 같습니다.
f = open("D:/python/test.txt", 'r', encoding='UTF8' ) cnt = 0 while 1 : if f.readline() == '' : break cnt += 1 print("readline함수 : %d" % (cnt))
위와 같이 하였습니다.
파일을 한줄씩 읽으면서
cnt값을 증가시켜서
라인수를 체크하는 것입니다.
위 소스를 실행하면
결과는 다음과 같이 나오게 됩니다.
위처럼 나와지는 것을 확인할 수 있습니다.
3. readlines() 이용
이번에는 readLines 함수를 이용하는 것입니다.
위 2번과 다른 점은
끝에 s가 더 붙은 것입니다.
readlines 함수는 줄바꿈을 기준으로
리스트로 반환을 해주는 것입니다.
그렇기 때문에 가져온 리스트의 총 길이를
구하면 됩니다.
실제 사용 예제를 확인해보도록 하겠습니다.
f = open("D:/python/test.txt", 'r', encoding='UTF8' ) print("readlines함수 : %d" % (len(f.readlines())))
위와 같이 코딩을 하였습니다.
그리고 실행을 하면
결과는 다음과 같이 나오게 됩니다.
위처럼 나와지는 것을
확인할 수 있습니다.
4. enumerate() 이용
이번에는 enumerate 함수를 이용하여
가져오는 방법을
정리해보도록 하겠습니다.
enumerate 함수는 파일의 내용을
index와 연결되는 데이터로
반환해주는 함수입니다.
enumerate 함수를 이용하여
데이터를 가져오면
아래처럼 가져와지게 됩니다.
위처럼 인덱스와 값이 설정이 되어서
가져오게 되는 것입니다.
이 List의 길이를 구해도 됩니다.
실제 사용 예제를 확인해보도록 하겠습니다.
f = open("D:/python/test.txt", 'r', encoding='UTF8' ) print("enumerate함수 : %d" % (len(list(enumerate(f)))))
위처럼 코딩을 하였고
실행을 하면
결과는 다음과 같이 나오게 됩니다.
위처럼 총 라인수를 가져오는 것을
확인할 수 있습니다.
5. List 응용
3,4번의 경우에는
List로 값을 가지고와서
해당 리스트의 길이를 체크하는 것이였습니다.
리스트를 이용할 때,
길이가 아니라 마지막 튜플의 첫번째 요소의 값
즉, 마지막 인덱스 값에 +1을 해도 됩니다.
이번에는 이 방법을
정리해보도록 하겠습니다.
f = open("D:/python/test.txt", 'r', encoding='UTF8' ) print("리스트 튜플 이용 : %d" % (list(enumerate(f))[-1][0]+1))
위처럼 해주시면 되십니다.
위 소스는 마지막 튜플의 인덱스를 가지고 와서
인덱스값에 +1을 한 것입니다.
위처럼 해서 실행을 하게 되면
결과는 아래와 같이 나오게 됩니다.
위처럼 인덱스 값을 이용해서도
가져올 수 있습니다.
오늘은 파이썬에서 텍스트파일의
총 라인수를 가져오는 방법을
정리해보았습니다.
위 4가지라고 해야 할지
6가지라고 해야 할 지 모르겠지만
아무튼 이런 방법이 있으니
필요하신 대로,
편하신 대로 사용을 해주시면 되실 것 같습니다.
물론, 위에서 말한 바와 같이
이 방법들 외에도 다른 방법도 있을 수 있습니다.
그렇기 때문에 편하신 방법으로
처리를 해주시면 되실 것 같습니다.
이상으로 python에서의 txt파일의
총 Line수 가져오기였습니다~
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'컴퓨터관련 > Python' 카테고리의 다른 글
python에서 인자값 입력받기 (0) | 2020.10.22 |
---|---|
python에서 산술연산자와 산술함수 (0) | 2020.08.06 |
python에서의 3항연산자 (0) | 2020.06.11 |
python에서의 사전 (0) | 2020.06.01 |
python에서 텍스트파일 쓰기 (0) | 2020.05.28 |