[解決済み] IOErrorです。[Errno 32] パイプ接続時にパイプが壊れました。`prog.py | othercmd` です。
2022-01-31 14:40:49
質問
非常にシンプルなPython 3スクリプトを持っています。
f1 = open('a.txt', 'r')
print(f1.readlines())
f2 = open('b.txt', 'r')
print(f2.readlines())
f3 = open('c.txt', 'r')
print(f3.readlines())
f4 = open('d.txt', 'r')
print(f4.readlines())
f1.close()
f2.close()
f3.close()
f4.close()
でも、いつも書いてある。
IOError: [Errno 32] Broken pipe
ネット上では複雑な解決方法が書かれていますが、私はこのコードをそのままコピーしたので、PythonのSIGPIPEではなく、コードに何か問題があるのではと思います。
私は出力をリダイレクトしているので、もし上記のスクリプトが "open.py" という名前だったら、私の実行するコマンドは次のようになります。
open.py | othercommand
解決方法は?
再現はしていませんが、もしかしたらこの方法で解決するかもしれません。
stdout
を使用するのではなく
print
)
import sys
with open('a.txt', 'r') as f1:
for line in f1:
sys.stdout.write(line)
壊れたパイプをキャッチできる?これは、ファイルを
stdout
パイプが閉じるまで一行ずつ
import sys, errno
try:
with open('a.txt', 'r') as f1:
for line in f1:
sys.stdout.write(line)
except IOError as e:
if e.errno == errno.EPIPE:
# Handle error
また
othercommand
が大きくなりすぎる前に、パイプから読み込んでいます。
https://unix.stackexchange.com/questions/11946/how-big-is-the-pipe-buffer
関連
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
Python LeNetネットワークの説明とpytorchでの実装
-
Python Pillow Image.save jpg画像圧縮問題
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み】 errno 32 壊れたパイプを防ぐには?
-
[解決済み] TypeError: Python3でファイルへの書き込み時に'str'ではなくbytesのようなオブジェクトが要求される
-
[解決済み] Pythonでstdoutをパイピングするときに正しいエンコードを設定する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
PicgoのイメージベッドツールをPythonで実装する
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
[解決済み】Python elifの構文が無効です【終了しました
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み】django インポートエラー - core.managementという名前のモジュールがない
-
[解決済み】SIGPIPEを防止する方法(または適切に処理する方法)について)