0

以下のコードを使用して、テキストファイルの合計行数を取得しようとしています。

totallines = 0
for line in infile:
    totallines += 1

それは機能し、シェルに正しい番号を印刷することができます。ただし、結果を次の場所に割り当てると、次のようになります。

item = [0]*totallines

指定された行を次のように小文字に強制すると、AttributeErrorが発生します。

item[i] = item[i].lower()

それでも、行カウンターを削除して、テキストファイルの行数に置き換えると。それは完璧に動作します。

どうすればこれを修正できますか?

4

2 に答える 2

3

入力ファイルの行を小文字に変換して、結果を配列に格納したいようです。あなたはこのようにそれを行うことができます:

with open('myfile.txt', 'r') as infile:
    items = [line.lower() for line in infile]

または(ある程度)同等に(これは各行の終わりに「\ n」をドロップします):

with open('myfile.txt', 'r') as infile:
    items = infile.read().lower().splitlines()

注:組み込み型fileを覆い隠すため、変数名として使用しないでください。file

于 2012-11-18T23:53:16.553 に答える
0

item = [0]*totallinesと同じ長さの0のリストを作成しますtotallines

ファイルをリストにコピーして特定の行(たとえば、6行目)にアクセスする場合は、次のようにします。

item = []
for line in infile:
    item.append(line)

print(item[5].lower())

または、より簡潔に言えば、ファイルオブジェクトの組み込みメソッドを使用します。

item = infile.readlines()
print(item[5].lower())
于 2012-11-18T23:56:12.783 に答える