10

複数行で作成した .txt ファイルがあります。

カウント アキュムレータを使用して for ループを実行すると、行がスキップされます。

一番上の行をスキップして、2 行目から開始し、4 行目、6 行目などを出力します...

私が見逃しているのは何ですか?

** for your reading pleasure**
def main():
    # Open file line_numbers.txt
    data_file = open('line_numbers.txt', 'r')

    # initialize accumulatior
    count = 1


    # Read all lines in data_file
    for line in data_file:
        # Get the data from the file
        line = data_file.readline()

        # Display data retrieved
        print(count, ": ", line)

        # add to count sequence
        count += 1
4

3 に答える 3

12

「line=data_file.readline()」を完全に削除してみてください。「data_file: の for 行」も readline 操作であると思われます。

于 2011-07-08T01:08:34.193 に答える
11

for ループが data_file を反復処理しており、readline() が競合しています。この結果のコード行を消去しline = data_file.readline()ます。

# Read all lines in data_file
count = 1
for line in data_file:
    # Display data retrieved
    print(count, ": ", line)

    # add to count sequence
    count += 1
于 2011-07-08T01:09:06.540 に答える
4

for line in data_fileはすでに各行のテキストを取得しています - その後の readline の呼び出しは、の行を取得します。つまり、readline の呼び出しを削除すると、必要なことが行われます。同時に、アキュムレータ変数を自分で追跡する必要はありません。Python には、これを行う組み込みの方法がありenumerateます。つまり、次のようになります。

data_file = open('line_numbers.txt', 'r')
for count, line in enumerate(data_file):
    ...
于 2011-07-08T01:13:16.503 に答える