私はpythonの世界にちょっと新しく、私のpythonスクリプト(linuxを使って)から自動的に出るbashファイルを実行しているいくつかの問題があります。絶対パスを示すPythonから.shファイルを実行
私はどこかでこのように私のデスクトップにあるディレクトリ内のテキストファイル.geoとBashファイル.SHの両方を作成するために、私のPythonスクリプトを設定します。
basedirectory="/home/pst2/Desktop/";
*//Writing the .geo file*
file = open(basedirectory+nomdossier+"/"+nomfichier+".geo", 'w');
file.write
..blabla
..blabla
file.close();
//Writing the .sh file
file = open(basedirectory+nomdossier+"/"+nomfichier+".sh", 'w');
file.write
..blabla
..blabla
file.close();
今、この時点で私のスクリプトは、すべてを完璧に動作変数の設定や細かい作業と私は(Pythonスクリプトを実行すると、変数を入力した後exempleのために)このディレクトリに自分自身を見つける作成し、両方のそれらのファイル
/home/pst2/Desktop/test/
(and in here you will find the new test.geo and test.sh that were created via the python script)
で「手動」実行基本的にtest.sh Bashのtest.sh(私が悲惨な時にはいつでもctory on ubuntu)は、同じディレクトリにtest.mshという別のファイルを作成します と私は、スクリプトから自動的に新しく作成されたtest.shファイルを実行するサブプロセスモジュールを使用して、正しいコーディングを見つけることができません。あなたに書いているわからないものを .SHファイル への絶対パスを示すと同じように、そうする方法がある(我々の場合basedirectory + nomdossier +「/」+ nomfichier +」には。SH)?
を探して何をすることができ
を信じてはい、私.SHは実行可能であり、ここで唯一の問題は、私が Bashのテストを行っていることを、他のbashのファイルを実行する方法を知ってはいけないということです.sh 私はPythonスクリプトから自動的にそれを実行したいので、端末上に(bash test.sh)を書くと、自分の.shと同じディレクトリにあったときだけ動作します。私は新しく作成された.shファイルと新しく作成されたディレクトリファイルを実行する方法を見つけることができません;( –シェルのためかもしれません。システムのパスを提供しているので、どこにそれを見つけるか分かっています。適切な環境変数または完全/相対パスとして指定することができます。例:/ sbin/lsしかし、環境変数にsbinがあると、lsを書くこともできます。 –