如何使用Python模拟scanf()方法?
阅读更多:Python 教程
根据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
极客教程