どのようにして、0
の出力と、それを呼び出すときにPythonのos.system
コマンドが出力する新しい行を非表示にする/排除することができますか?例えばPythonで `os.system`を呼び出すと、0を隠す方法や削除する方法は?
:
import os
os.system('whoami')
出力:
userX
0
どのようにして、0
の出力と、それを呼び出すときにPythonのos.system
コマンドが出力する新しい行を非表示にする/排除することができますか?例えばPythonで `os.system`を呼び出すと、0を隠す方法や削除する方法は?
:
import os
os.system('whoami')
出力:
userX
0
この内容はどうですか?
from subprocess import check_output
user_name = check_output('whoami').strip()
print user_name
#out: userX
これは私が探していた、ありがとう – shaveax
あなたのpythonコンソール
>>> import os
>>> os.system('whoami')
userX
0
この0
が実際にos.system('whoami')
の戻り値であるを使用してのみに表示されAsumingコンソール。スクリプトを使用すると、この出力は得られません。何とか値を割り当てれば、それは技術的に隠されるでしょう
>>> import os
>>> ret = os.system('whoami')
userX
まったく同じことを書こうとしていました:-)私は別の解決策を考えることができません。 – quapka
os.system()
(エンコードされた)プロセス終了値を返します。 0は成功を意味します。
UNIXでは、戻り値はwait()で指定された形式でエンコードされたプロセスの終了ステータスです。 POSIXはC system()関数の戻り値の意味を指定しないので、Python関数の戻り値はシステムに依存します。 あなたが見る出力はstdoutに書かれているので、あなたのコンソールや端末はPythonの呼び出し元に返されません。代わりにあなたがsubprocess.check_outputを(使用し、標準出力をキャプチャしたい場合
):
x = subprocess.check_output(['whoami'])
私はあなたが「プリント引数は(os.system( 'のような何かをしない限り、 '0'ことを見るべきだと思いませんwhoami ')) '。 Pythonは関数の戻り値を自動的に出力しません。 – Barmar