我是python世界的新手,我有一些运行bash文件的问题,将自动从我的python脚本(使用linux)。
我设置我的python脚本在我桌面的某个目录中创建一个文本文件.geo和一个Bash文件.sh,如下所示:
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脚本并输入变量之后)
/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(每当我在ubuntu上的目录中)将在同一目录中创建另一个名为test.msh的文件 我似乎无法找到正确的编码,使用子进程模块从脚本自动执行新创建的test.sh文件。 有没有办法这样做,比如指示.sh文件的绝对路径 (在我们的案例中,基于目录+ nomdossier +" /" + nomfichier +" .sh)?
答案 0 :(得分:0)
不确定您写入.sh文件的内容。
但首先:
完成此操作后,您应该能够使用子进程模块并执行类似子进程手册中的示例: subprocess.call([path_to_script + '/ script.sh'])
我可能需要更新此答案,如果&当有新的信息引起我的注意时
答案 1 :(得分:0)
看看os模块。
我相信
os.system("command_line_with_args")
可能就是你要找的东西
答案 2 :(得分:0)
大致相当于“手动”执行bash test.sh
,当前目录是您发布的代码已写入test.sh
的目录,
from subprocess import call
call(['bash', 'test.sh'], cwd=basedirectory+nomdossier)