質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
標準出力

標準出力(stdout)は、プログラムが標準的に用いるデータ出力元。標準出力に書き込み要求を発行しすることにより、ディスプレイ装置にデータを表示することができます。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

32151閲覧

python で print() したものが出力されない理由

goro_gnm

総合スコア42

標準出力

標準出力(stdout)は、プログラムが標準的に用いるデータ出力元。標準出力に書き込み要求を発行しすることにより、ディスプレイ装置にデータを表示することができます。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/07/01 10:00

github から借りてきたコードを使っているのですが、途中でエラーが出てしまったため何が起きているのか確認しようと思い、随所に print() を書き加えました。
その後、実行をしてみたところ print() したものがターミナルに出力されませんでした。
この理由がわからないため、ありえる原因を教えていただけるとうれしいです。

何が起きているのかわからないため必要な情報が何かもわからないのですが、追加で有効そうな情報としては

  • コードに変更を加えた時にその変更は反映されている。
  • エラーが起きないような状態で実行すれば、print()はターミナルに出力される。

使っているコード

https://github.com/toshohirasawa/nmtpytorch-emb-pred/blob/master/example/imagination.conf

コード実行の仕方

下のようにシェルスクリプトを書いています。
標準出力がどこかにパイプされているわけではありません。

shell

1folder_path=/disk/n.n/mmt-emb-pred 2output_path=$folder_path/result/imagination/en-fr/original 3 4mkdir -p $output_path 5 6CUDA_VISIBLE_DEVICES=2 python bin/nmtpy train \ 7 train.save_path:$output_path \ 8 -C $folder_path/example/imagination.conf

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Penpen7

2020/07/01 16:39

どこに、どういうprint()を書いたのですか?
yymmt

2020/07/01 16:45

pythonのコマンドラインオプションに -u をつけても出力されませんか?
guest

回答1

0

ベストアンサー

標準出力はバッファリングされています。私はそんなにシェルの動作に詳しくはないですがバッファリング中にエラーが発生すると内容がコンソールに表示されず捨てられてしまうことがあります。

質問のようなデバッグプリントデータは標準エラー出力に出すようにすると良いかと思います。
通常、標準エラー出力はバッファリングされていません。

python

1import sys 2 3print(出力したい変数,file=sys.stderr)

バッファリングの状態を変更したい場合はsetbufコマンドで

投稿2020/07/02 13:08

hope_mucci

総合スコア4447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goro_gnm

2020/07/14 16:47

教えてくださった方法で解決しました、ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問