假设一个文件包含一组记录,并且该记录的第一行是:
@ 2014 2 14 00:03:01 Matt "login" 0.01
我试图打印整个第一行,然后回来并循环剩下的其余文件,我可以做得非常好,但我最近刚刚获悉我们的老师要我们使用扫描仪导入,基本上是扫描仪是什么,是一个读取子系统,允许您从文件中读取以空格分隔的标记。我对如何使用扫描仪一次读取单行非常感到困惑......对扫描仪的任何帮助都会很棒
答案 0 :(得分:1)
python标准库中有一个词法扫描程序,称为tokenize:http://docs.python.org/2/library/tokenize.html
您必须传递一个参数,该参数是扫描仪用来读取一条线的函数,因此可以与任何类型的输入(字符串,文件......)连接。
(读第一行)
with file("...", 'r') as f:
g = generate_tokens(f.readline())
或(整个文件)
with file("...", 'r') as f:
g = generate_tokens(f.read())
或(逐行)
with file("...", 'r') as f:
for l in f:
g = generate_tokens(StringIO(l).readline)
应该这样做。
您可以使用f.seek(0)
返回文件的开头