Я ищу эквивалент sscanf()
в Python. Я хочу разобрать /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, как объяснено выше.
Есть ли в стандартной библиотеке Python, эквивалентный sscanf
(не RE), или функция разделения строк в стандартной библиотеке, которая разбивает любой диапазон символов, о которых я не знаю?