-3

重複の可能性:
Python で一度に N 行を読み取る方法
Read a File 8 Lines at a Time Python

一度に8行指定されたファイルを1行ずつ読み取ってから、それらの値をコード内の変数として使用しようとしています

問題は、それが読み取られる方法またはそれを読み取っているメソッドが、コード内の文字列変数として機能しないことです

Read を使用するとうまくいくようですが、 read() 関数を使用して一度に 8 行ずつファイルを読み取る方法がわかりません。

どうすればこれを行うことができますか?

ありがとうございました

詳細を編集

ライブラリスピナーを使用しています。一度に n 行ずつファイルを読み取るために任意の数のコードを使用できますが、実際にはスピナーの関数の値として行を使用しても機能しません。例えば

これを使用してファイルを読み取ります

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)

フォームに入力されません。私はボットやスパムツールを構築しているのではなく、本当にいじっているだけです。

フィードバック/ヘルプに感謝します

*乾杯

4

1 に答える 1

1

readファイルからバイト数を読み取ります。readlineどちらが行末まで読み上げられるかが必要です。これを 8 回呼び出して、8 行を取得します。

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

または、レシピの 1 つをitertools使用してファイルを 8 行のブロックにグループ化し、それらを反復処理することもできます。

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は、反復がその行を反復することと同じであるため機能します。

于 2012-12-17T17:48:39.133 に答える