[解決済み] Pythonで "with open "を使って複数のファイルを開くにはどうしたらいいですか?
2022-02-25 06:41:48
質問
いくつかのファイルを一度に変更したいのですが。
もし
全部に書き込めます。どうにかして複数のオープンコールを組み合わせて
with
ステートメントを使用します。
try:
with open('a', 'w') as a and open('b', 'w') as b:
do_something()
except IOError as e:
print 'Operation failed: %s' % e.strerror
それが無理なら、この問題に対するエレガントな解決策はどのようなものでしょうか?
どのように解決するのか?
Python 2.7(または3.1)では、次のように記述することができます。
with open('a', 'w') as a, open('b', 'w') as b:
do_something()
以前のバージョンのPythonでは、たまに
contextlib.nested()
を使用してコンテキスト・マネージャーをネストすることができます。 しかし、これは複数のファイルを開く場合には期待通りに動作しません -- 詳細はリンク先のドキュメントを参照してください。
まれに、可変数のファイルをすべて同時に開きたい場合は、以下のようにします。
contextlib.ExitStack
Python 3.3から導入されました。
with ExitStack() as stack:
files = [stack.enter_context(open(fname)) for fname in filenames]
# Do something with "files"
ほとんどの場合、可変長のファイルセットを持っているので、それらを次々に開きたいのでしょうけど。
関連
-
PythonはWordの読み書きの変更操作を実装している
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] pipで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 実装 サイバーパンク風ボタン
おすすめ
-
opencvとpillowを用いた顔認証システム(デモあり)
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
PythonはWordの読み書きの変更操作を実装している
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み] データ型が理解できない
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み] with文の中に複数の変数がある?