본문 바로가기
컴퓨터관련/Python

python에서 txt파일 라인수 구하기

by 빛과 어둠사이 2020. 7. 2.
728x90
반응형
SMALL

얼마 전에 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수 가져오기였습니다~




Do it! 점프 투 파이썬:이미 200만명이 이 책으로 프로그래밍을 시작했다!, 이지스퍼블리싱

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음




728x90
반응형
LIST

'컴퓨터관련 > 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