0

私は非常に単純なコードを書きましたが、1 つのことを理解できません。コードはそのように見えます

name = open("test.txt")

def CountLines(name):
    return len(name.readlines())

def CountChars(name):
    return len(name.read())


print(CountLines(name))
print(CountChars(name))

そして、「test.txt」に 4 行のテキスト (line1、line2、line3、line4) が含まれているとします。このコードを実行すると、次の出力が得られます。

4
0

最初のものは問題ありませんが、なぜ 2 番目は 0 なのですか? 前の関数がEOFに設定されているためですか?もしそうなら、なぜ最初からファイルを読まないのですか? ファイルをリロードする方法はありますか?

4

1 に答える 1

2

はい、2 つ目は0、既にファイル全体を読み取ったため、読み取るものが残っていないためですCountChars

name.seek(0)を呼び出す前に、ファイルの先頭に戻るためにそこに入れる必要がありますCountCharsファイル オブジェクトのドキュメントを参照してください。

于 2012-03-17T17:50:56.110 に答える