[解決済み] ファイルが `eof` にあるかどうかを調べるには?
2023-06-16 12:35:54
質問
fp = open("a.txt")
#do many things with fp
c = fp.read()
if c is None:
print 'fp is at the eof'
上記の方法以外に、fpがすでにeofにあるかどうかを調べる方法はありますか?
どのように解決するのですか?
fp.read()
はファイルの終わりまで読み込むので、正常に終了した後はファイルがEOFにあることが分かっており、確認する必要はありません。EOF に到達できない場合は、例外が発生します。
でなく、チャンクでファイルを読む場合は
read()
でなく、チャンクでファイルを読む場合、EOF を打ったことがわかるのは
read
が要求したバイト数より少ない値を返したとき、EOFにぶつかったことがわかる。その場合、次の
read
の呼び出しは空の文字列を返します(
None
). 次のループは、ファイルをチャンクで読みます。
read
を多くても一度だけ呼び出します。
assert n > 0
while True:
chunk = fp.read(n)
if chunk == '':
break
process(chunk)
あるいは、もっと短く。
for chunk in iter(lambda: fp.read(n), ''):
process(chunk)
関連
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] ファイルへの追記はどのように行うのですか?
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み] ファイルの作成日時、変更日時を取得する方法
-
[解決済み] ディレクトリへのシンボリックリンクを削除する
-
[解決済み] あるオブジェクトが数であるかどうかを確認する、最もパイソン的な方法は何でしょうか?
-
[解決済み] Python 言語を決定するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] 辞書のキーと値を交換するにはどうすればよいですか?
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] Python 3でバイナリデータを標準出力に書き込むには?
-
[解決済み] なぜ(0-6)は-6=偽なのか?重複
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] サブフォルダからのインポートモジュール
-
[解決済み] Pandasのデータフレーム内の文字列を'date'データ型に変換するにはどうしたらいいですか?
-
[解決済み] Pythonの文字列の前にあるbという接頭辞は何を意味するのですか?
-
[解決済み] Pythonの辞書にあるスレッドセーフについて