1

この質問が何度も聞かれたらごめんなさい。DOSの.exeファイルがあります。これは、Windowsでダブルクリックするとうまく機能し、作業フォルダーにいくつかの出力ファイルが生成されます。ただし、Pythonから呼び出す必要があります。次のコマンド(subprocess.Popenおよびos.system)を試しましたが、出力ファイルを保存せずにDOSウィンドウを開くだけです。それで、誰かが私にヒントを与えることができますか?

ありがとう!

コード

a=subprocess.Popen(r"I:/dosefile.exe")
a1=os.system(r"I:/dosefile.exe")

更新 .pyスクリプトファイルをdosefile.exeを含むフォールドに配置することで機能しました。.pyファイルを移行せずに動作させる方法はありますか?

それを理解しなさい。.pyファイルが別の場所にある場合は、os.chdir()を使用して作業フォルダーを変更する必要があります

4

2 に答える 2

1

システムコールとして呼んでみてください

import os
os.system('I:/dosefile.exe')

次に、作成した出力ファイルを解析します。

于 2012-04-30T05:08:58.037 に答える
1

より良い方法は、以下を使用することです。

os.chdir('I:')

次に、subrprocessを使用できます。
os.systemは非常に制限されており、subprocess.Popenを優先する必要があります。

さらに良いのは、作業ディレクトリを設定するsubprocess.Popenキーワード'cwd'を使用することです。

subprocess.Popen(self, args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None,\
preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, \
startupinfo=None, creationflags)

Pythonは練習が簡単な言語であり、Pythonは非常に寛容であるため(C ...とは異なり)、os.systemのようなものは機能します。ただし、Pythonに付属しているより強力なツールを学ぶ努力をすることを強くお勧めします。
後で後悔することはありません。

于 2012-04-30T07:10:47.280 に答える