なぜコンテンツPythonのos.system:コマンドの順序
import os
print('Hi')
os.system('cat a.py')
でファイルa.py
を呼び出すんが、次のような出力が得られ、どのように私は彼らが正しい順序で印刷するように得ることができますか?あなたはprint
がする前にcat
コマンドのプリントがstdoutにいることがわかり
$ python a.py
import os
print('Hi')
os.system('cat a.py')
Hi
。 Windows上のGitBashでPython 3.6を実行したときに発生します。ではないは、Ubuntu 17.10でPython 3.6で発生します。
注:私は簡単にfile.readlines()
のようなものを使用してファイルの内容を印刷周り得ることができることを承知しています。これは単純な例です。しかし、より複雑なものを実行する場合、を理解することが重要になる可能性があります。これが起こり、回避する方法
なぜサブプロセスを使用していませんか? 'os.system'は使用しないでください。 'subprocess.Popen'の動作はすべてのOSで同じであることが保証されています – user1767754
@ user1767754:サブプロセスの動作は何が違うのですか。 – user2357112