[解決済み] Pythonでオブジェクトがファイルであるかどうかをチェックする
2022-11-08 01:54:55
質問
ファイル的なもの
は、実際のファイルのように振る舞う Python のオブジェクトで、例えば read() と write メソッド() を持ちますが、Python と異なる実装を持っています。
file
. を実現するものです。
アヒルの型付け
の概念を実現したものです。
ファイルのようなオブジェクトを、ファイルが予想される場所ならどこでも許可することは、良い習慣と考えられています。 ストリングIO や Socket オブジェクトを実際のファイルの代わりに使用することができます。ですから、このようなチェックを行うのはよくありません。
if not isinstance(fp, file):
raise something
オブジェクト(例えばメソッドのパラメータ)が "file-like"であるかどうかを確認する最良の方法は何でしょうか?
どのように解決するのですか?
特別な要件がない限り、一般にこのようなチェックをコード内にまったく持たないのはよい習慣ではありません。
Pythonでは型付けは動的です。オブジェクトがファイルのようであるかどうかをチェックする必要があると感じるのはなぜですか。
あなたができるどんなチェックも、いずれにせよ実行時に行われるでしょう。
if not hasattr(fp, 'read')
を実行して例外を発生させることは、単に
fp.read()
を呼び、そのメソッドが存在しない場合に生じる属性エラーを処理することよりも、ほとんど実用的ではありません。
関連
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] pandasのDataFrameから空のセルを含む行を削除する
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] Pythonの要素別タプル演算(sumなど
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] Python Empty Generator 関数
-
[解決済み] Pythonで、ウェブサイトが404か200かを確認するためにurllibをどのように使用しますか?
-
[解決済み] Pythonの文字列書式をリストで使う
-
[解決済み] 新しいpip backtrackingの実行時問題の解決
-
[解決済み] データクラスとtyping.NamedTupleの主な使用例
-
[解決済み] Python の sorted() はどのようなアルゴリズムを使っているのですか?重複