Python Read()函数一次读取N行

时间:2012-12-17 17:47:39

标签: python

  

可能重复:
  Python how to read N number of lines at a time
  Read a File 8 Lines at a Time Python

我试图逐行读取一行文件,然后在代码中使用这些值作为变量

问题在于它被读取的方式或者读取它的方法在我的代码中不能用作字符串变量

使用Read似乎工作但我不知道如何使用read()函数8行一次读取文件。

我知道如何做到这一点?

谢谢

修改更多详情

我正在使用库spynner。我可以使用任意数量的代码一次读取n行文件,但实际上使用行作为spinner函数中的值不起作用。例如

我用它来读取文件

with open("test.txt") as fin:
    try:
        while True:
            data =  islice(fin, 0, 8)                
            email = next(data)

然后在Spynner中我这样做

browser.wk_fill('input[name="email"]', email)

表格中没有填写。我没有构建机器人或垃圾邮件工具,只是搞乱了。

非常感谢任何反馈/帮助

*欢呼声

1 个答案:

答案 0 :(得分:1)

read从文件中读取多个字节。您希望readline读取直到行尾。称之为八次以获得八行:

[f.readline() for _ in range(8)]

或者,您可以使用one of the itertools recipes将文件分组为八行块,然后迭代它们:

from itertools import izip_longest
def grouper(n, iterable, fillvalue=None):
    "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
    args = [iter(iterable)] * n
    return izip_longest(fillvalue=fillvalue, *args)

for block in grouper(8, f):
    # do stuff
    pass

这是有效的,因为迭代f与迭代它的行相同。