Appia의 IT세상

파이썬[Python] C 소스 코드 공백포함, 공백 미포함 코드라인 수 확인하기 본문

Python/Python 응용

파이썬[Python] C 소스 코드 공백포함, 공백 미포함 코드라인 수 확인하기

Appia 2021. 7. 23. 06:51
반응형

파이썬[Python] C 소스 코드 공백포함, 공백 미포함 코드라인 수 확인하기

파이썬[Python] C 소스 코드 공백포함, 공백 미포함 코드라인 수 확인하기

최근에 C언어로 작성된 소스코드를 파싱해야하는 일들이 조금 생겼습니다. C코드 최적화등에 사용하기 위해서 다양한 작업들을 하고 있습니다. 그중에서 이번에는 C언어로 작성된 소스코드를 파싱해서, 라인수를 확인하는 코드를 작성해보도록 하겠습니다.

(물론 이 부분도 현재 하는 작업과 연관이 있습니다.) 

 

먼저, 2가지 형태로 접근을 할 것입니다. 첫번째는 공백이 라인수를 계산하는 방법, 그리고 다른 하나는 아무것도 작성이 안된 부분에 대해서는 스킨하는 방식으로 라인을 계산하는 방법에 대해서 이야기를 해보겠습니다. 

 

일단, 해당 코드는 다음과 같은 경로에서 참고하였습니다. 

https://c.happycodings.com/sorting-searching/code12.html

 

C | No sort, but reversing a [linked list] Code Example

C Programming Code Examples C > Sorting Searching Code Examples No sort, but reversing a [linked list] No sort, but reversing a [linked list] #include #include #define MAX 10 /* max of 10 elements */ struct lnode { int number; struct lnode *next; }; /* add

c.happycodings.com

그럼 코드를 한번 살펴보도록 하겠습니다. 

def reading_source(path):
    sourcecode = open(path,"r")
    data = sourcecode.readlines()
    number = 0
    for i in data:
        number = number + 1
        print(str(number)+"\t"+i)

    return number


if __name__ == '__main__':
    file = "D:\Example\Example_C.C"

    countline = reading_source(file)
    print(countline)

위의 코드를 실행하면 다음과 같은 결과가 나타납니다. 

67

이 부분은 매우 간단합니다. 파일 입출력을 이용하여, readline()을 이용하여, 루프를 돌면서 카운트를 추가하는 방식입니다. 

 

그럼 이번에는 공백이 미포함하여 코드라인을 확인 하는 부분에 대해서 이야기를 해보겠습니다. 

import re

def reading_source(path):
    sourcecode = open(path,"r")
    data = sourcecode.readlines()
    number = 0
    notWord = re.compile('\w')

    for i in data:
        val_i = notWord.search(i)

        if val_i != None :
            number = number + 1
            print(str(number)+"\t"+i)

    return number


if __name__ == '__main__':
    file = "D:\Example\Example_C.C"

    countline = reading_source(file)
    print(countline)

위의 코드를 실행하면 다음과 같은 결과가 나타납니다. 

47

여기에서는 정규식을 사용하기 위해서 re모듈을 Import하셔야 합니다. 그런후에 '\w'부분을 이용하여 일반 텍스트가 없는 부분에 대해서는 선별하는 방식으로 작성을 하였습니다. 이와 같은 방식으로 하면, 아무것도 없는 공백의 라인을 스킵하고, 관련된 라인을 카운트 할 수 있습니다. 이와 같은 방식으로 실제 코드가 작성되어 있는 부분에 대해서 카운트를 할 수 있습니다. 

파이썬[Python] 010 파일 입출력

 

파이썬[Python] 010 파일 입출력

모든 프로그래밍을 하면, 관련해서 결과물을 얻기를 바랍니다. 즉, 콘솔 창에 코딩에 대한 결과를 원하든 아니면, 파일로 관련해서 결과를 원하던, 어떤 형태로든 결과가 출력 되길 원할 것입니

appia.tistory.com

이번 포스팅에서는 파이썬[Python] C 코드 공백포함, 공백 미포함 코드라인 수 확인하기라는 주제로 포스팅을 해봤습니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다. 

반응형
Comments