如何使用Python模拟scanf()方法?

根据Python文档

Python当前没有等效于scanf()的东西。正则表达式通常比scanf()格式的字符串更强大,但也更冗长。下表提供了scanf()格式标记和正则表达式之间的大致等效映射。

scanf()令牌正则表达式

%C

%5c
。{5}
%d
[-+]?\ d +
%e,%E,%f,%g
[-+]?(\ d +(\。\ d *)?| \。\ d +)([eE] [-+]?\ d +)?
%一世
[-+]?(0 [xX] [\ dA-Fa-f] + | 0 [0-7] * | \ d +)
%o
[-+]?[0-7] +
%s
\ S +
%u
\ d +
%x,%X
[-+]?(0 [xX])?[\ dA-Fa-f] +

从类似的字符串中提取文件名和数字

/usr/sbin/sendmail - 0 errors, 4 warnings

您将使用scanf()格式,例如

%s - %d errors, %d warnings

等效的正则表达式为

(\S+) - (\d+) errors, (\d+) warnings
猜你喜欢