[Tutor] scanf-1.0 tested and about to release

Danny Yoo dyoo at hkn.eecs.berkeley.edu
Fri Aug 20 08:12:54 CEST 2004


> I thought it might make a nice weekend project to write scanf for
> Python; it's nowhere near done yet, but it's sorta working... *grin*
>
>     http://hkn.eecs.berkeley.edu/~dyoo/python/scanf.py


Hi everyone,

Ok, I've gotten everything implemented that I really wanted to implement.
If anyone wants to play with this 'scanf' module before I formally
announce it on comp.lang.python and PyPI, here's a link to the latest
version:

    http://hkn.eecs.berkeley.edu/~dyoo/python/scanf/scanf-1.0.tar.gz

I'll eventually write a web page for it, but my fingers are tired, so I'd
better take a break.


Here's some of what it does:

###
>>> import scanf
>>> scanf.sscanf("3.1415926 seventeen 42! Hut!", "%f %s %d")
(3.1415926000000001, 'seventeen', 42)
>>> from StringIO import StringIO
>>> sampleFile = StringIO("""
... 3, 17
... 4, 19
... 1, -5
... 16, 25""")
>>> scanf.fscanf(sampleFile, "%d, %d")
(3, 17)
>>> scanf.fscanf(sampleFile, "%d, %d")
(4, 19)
>>> scanf.fscanf(sampleFile, "%d, %d")
(1, -5)
>>> scanf.fscanf(sampleFile, "%d, %d")
(16, 25)
>>> scanf.fscanf(sampleFile, "%d, %d")
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "./scanf.py", line 350, in fscanf
    return bscanf(buffer, formatString)
  File "./scanf.py", line 362, in bscanf
    return parser(buffer)
  File "./scanf.py", line 523, in __call__
    raise IncompleteCaptureError, (e, tuple(results))
scanf.IncompleteCaptureError: (<scanf.FormatError instance at 0x92300>, ())
###

At least this should help wean the Python beginners who were recovering C
programmers in a past life.  *grin*


Hope this amuses someone out there!



More information about the Tutor mailing list