2

.html正規表現 (reモジュール)を使用してファイルを検索するチュートリアルに取り組んでいます。通訳者を利用しています。

ファイルを開いて検索を実行しました。各試行の後f.seek(0)、次の試行のためにファイルの先頭に戻っていました。を使用して、ファイル内の自分の位置を確認しましたf.tell()

これを行った最初の数回は、ファイルの場所 (バイト単位) がL追加されずに返されました。しかし、何度か試行した後、追加されf.tell()た場所を返しました。L

Lファイルの場所 ( 内bytes) がlong number. しかし、以前はそうではなかったのに、なぜf.tell()突然 を返し始めるのでしょうか?L

次に、ファイルを閉じて再度開き、最初からf.tell()返しましたlong numberか?

4

1 に答える 1

3

はい、をL意味しますlong(これは実際にはメモリと計算時間によってのみ制限されます)。

Pythonは通常、値がタイプが処理できる範囲を超えるとすぐに、intsからsへの自動昇格を実行します。また、別の操作が行われた場合、結果は常に(→ )になります。longintlonglong0 + 0L0L

あなたの場合、私はこの影響を引き起こした原因を推測することしかできません。たぶん、特定の制限を超えて読んだことが昇進を引き起こしたのかもしれません。おそらく、何らかの内部処理(常に行われるとは限りません)が理由でした。

私はそれがあなたにとって重要ではないと思います。

于 2012-11-28T13:01:20.540 に答える