1

ファイルを 1 行ずつ読み取れるようにしたいのですが、プロンプトが表示された場合 (ユーザーが「背景」を入力したとします)、行 0:24 が返されます。これは、背景に関連する .txt の行であるためです。

def anaximander_background():
    f = open('Anaximander.txt', 'r')
    fList = []
    fList = f.readlines()
    fList = [item.strip('\n') for item in fList]
    print(fList[:20])

このコードは、次のようなリストを出力します。

['ANAXIMANDER', '', 'Anaximander was born in Miletus in 611 or 610 BCE.', ...]

さまざまな方法 (for、if、while ループ) を試し、csv インポートを試しました。

私が得た最も近いものは、次のような印刷物を作成できることでした。

[ANAXIMANDER]
[]
[info]

など、から取得するオブジェクトの数に応じてfList

先ほど示した例のように印刷したいのですが、リストの括弧 ([ ]) は使用しません。

必要に応じて明確にすることができます。

4

2 に答える 2

3

リストをループするか、次を使用しますstr.join()

for line in fList[:20]:
    print(line)

また

print('\n'.join(fList[:20])

fList1 つ目はスライスに含まれる各要素を個別に出力し、2 つ目は\n出力前に改行文字を含む新しい文字列に行を結合します。

于 2013-03-02T15:37:05.250 に答える
1

ファイルの最初の 20 行を印刷するには:

import sys
from itertools import islice

with open('Anaximander.txt') as file:
    sys.stdout.writelines(islice(file, 20))
于 2013-03-02T15:51:41.723 に答える