본문 바로가기
파이썬

파이썬의 sscanf

by º기록 2020. 12. 23.
반응형

Python에서 sscanf () 에 해당하는 것을 찾고 있습니다. / proc / net / * 파일을 구문 분석하고 싶습니다. C에서 다음과 같이 할 수 있습니다.

int matches = sscanf(
        buffer,
        "%*d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %*X %*X:%*X %*X:%*X %*X %*d %*d %ld %*512s\n",
        local_addr, &local_port, rem_addr, &rem_port, &inode);

처음에는 str.split 을 사용하려고 생각했지만 주어진 문자로 분할되지 않고 전체적으로 sep 문자열로 나뉩니다.

>>> lines = open("/proc/net/dev").readlines()
>>> for l in lines[2:]:
>>>     cols = l.split(string.whitespace + ":")
>>>     print len(cols)
1

위에서 설명한대로 17을 반환해야합니다.

sscanf (RE 아님)에 해당하는 Python 또는 내가 알지 못하는 문자 범위를 분할하는 표준 라이브러리의 문자열 분할 함수가 있습니까?

 

해결 방법

 

파이썬에는 sscanf 와 동등한 내장 기능이 없으며, 대부분의 경우 실제로 문자열로 직접 작업하거나 정규 표현식을 사용하거나 구문 분석을 사용하여 입력을 구문 분석하는 것이 훨씬 더 합리적입니다. 수단.


이 특별한 경우에 여러 분할 문자를 기반으로 데이터를 분할하려는 경우 re.split 이 실제로 적합한 도구입니다.

 

참조 페이지 https://stackoverflow.com/questions/2175080

 

 

반응형

댓글