반응형
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
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python MySQLdb TypeError : 문자열 형식화 중에 변환 된 모든 인수가 아닙니다. (0) | 2020.12.23 |
---|---|
파이썬 확인하고 읽을 파일이 존재할 때까지 기다립니다. (0) | 2020.12.23 |
파이썬 Pandas 데이터 프레임 총 행 (0) | 2020.12.23 |
파이썬 SQLAlchemy / Elixir에서 고유 한 열 값 선택 (0) | 2020.12.23 |
파이썬 numpy 및 scipy의 계승 (0) | 2020.12.23 |
댓글