0

テキスト ファイル dummy.txt には、次の行が含まれています。

Line 1
Line 2
Line 3

次のプログラムは、各行を行リストに追加することになっています。

f1 = open('c:\Python33\dummy.txt')
lines = []
for line in f1:
    lines.append(f1.readline())
f1.close()
print(lines)

しかし、その出力は次のとおりです。

['2 行目\n', '']

IDLEを使用してファイルを開き、lines.append(f1.readline())3回入力して行を印刷すると、必要なもの、つまり['Line 1\n', 'Line 2\n', 'Line 3\n'].

プログラムの何が問題になっていますか?

4

1 に答える 1

4

open次の行を正しく取得しているジェネレーターを返しますが、ループのために2回取得しています。これがあなたがしていることです...f1ループで呼び出してから、追加f1で2番目の行を引っ張って再度呼び出されています。最後に、ループ ヘッダーで再度呼び出して 3 行目を呼び出してから、apped で再度呼び出すと、ファイルの終わりになります。ジェネレーターを終了します。

これを行う:

f1 = open('c:\Python33\dummy.txt')
lines = []
for line in f1:
    lines.append(line)
f1.close()
print(lines)

また

lines = [line for line in f1]

また

lines = f1.readlines()
于 2013-01-20T17:18:02.207 に答える