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


根据 Python 文档

Python 当下还没有与scanf()等效的格式。尽管比scanf()格式字符串更冗长,但常规表达式通常更强大。下表提供了scanf()格式标记和常规表达式之间的几种多多少少等效的映射。

scanf() 标记常规表达式

%c
.
%5c
.{5}
%d
[-+]?\d+
%e, %E, %f, %g
[-+]?(\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?
%i
[-+]?(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

更新时间:2023-11-02

6 千多次浏览

开启你的 职业

完成课程后取得认证

立即开始
广告