0

pythonでos.startfileコマンドを使用して、独自のフォルダ内の特別な処理を実行するWindows実行ファイルを起動します。Pythonコードは別のフォルダから実行されます。私はファイルを開始します、それはpythonスクリプトの作業ディレクトリで始まりますが、それはそれ自身のディレクトリから始まらなければなりません。 os.chdir(path)を使用して作業ディレクトリを変更しようとしましたが、失敗しました。ファイルはそれ自身のフォルダでは実行されません。ショートカットの「開始」行のようなコマンドがあるかもしれないと思った。私はすべてを検索しましたが、成功はありません。唯一の解決策は私の心には、ショートカットを作成し、 "開始"行を追加し、ショートカットを起動することですが、それは非常に非実用的です。Python起動ファイルで開かれたexeの作業ディレクトリを変更する

+1

なぜ 'system'コマンドとは異なり、' startfile'を使ってプログラムを実行していますか? –

+0

私はos.systemと同じ問題を抱えています – Saulpila

答えて

4

os.startfileを使用しないでください。 subprocessを使用すると、cwdの引数をPopenとすることができます。

import subprocess 
process = subprocess.Popen('command', cwd = 'directory') 

あなたが本当にShellExecuteを使用したい場合は、最良の方法はos.startfileをスキップして​​と直接それを呼び出す(あるいは、それはどこかpywin32でのかどうか見て)することになります。

+0

それはまだPythonのディレクトリから実行します!あなたの助けをありがとうが、それは動作しませんでした...あなたはそれを試してみましたか?これはうまくいくはずですか?それがなかったので – Saulpila

+0

@サウピラ:どのようにあなたはそれをチェックしていますか?そして、どのPythonバージョンを使用していますか? –

+0

私はpython 2.7.2を使用しています。私はコードを変更して実行しましたが、実行ファイルが実行されていないときは、ファイルを作成する前にpythonスクリプトのフォルダにファイルが作成されているので、 – Saulpila

関連する問題