system("pause")
テストと個人的な概念実証のために、単純な文字列のみを出力してからシステム一時停止(文字通りC ++)を呼び出す.exeファイルがあります。
Windows XP VMでテストしている単純なPythonスクリプトがあり、混乱したときにこれらの操作を実行します。
subprocess.call(r'echo Nothing special. > c:\blank.txt', shell=True)
subprocess.call(r'type pause.exe > c:\blank.txt:ads.exe', shell=True)
subprocess.call(r'start c:\blank.txt:ads.exe', shell=True)
subprocess.call(r'del c:\blank.txt', shell=True)
明らかに、これらのコマンドはすべてコマンドラインで単独で正常に機能しますが、Pythonを介して呼び出されたときに正常に機能しないのはなぜですか?
次のポップアップエラーメッセージが表示されます。
blank.txt:ads.exeで問題が発生したため、閉じる必要があります。ご不便をおかけしてしまい申し訳ございません。
何かの途中にいると、作業中の情報が失われる可能性があります。
ファイルも実際に削除されます。.exeがポップアップすることを期待しているときに、システムの一時停止がdeleteコマンドによって押しつぶされたようです。Enterキーを押すのを待ってから、スクリプトを続行してファイルを削除します。