使用Python运行bash文件
我有一个bash文件,通常使用Cygwin执行。 我需要从Python代码中运行此文件 我试过这个:使用Python运行bash文件,python,bash,cygwin,popen,Python,Bash,Cygwin,Popen,我有一个bash文件,通常使用Cygwin执行。 我需要从Python代码中运行此文件 我试过这个: for bashfile in files: p = Popen(bashfile, cwd=dname) #dname is the current directory of the script stdout, stderr = p.communicate() 我也看到了一个类似的问题,但是当试图以这种方式运行它时,它会说它找不到我的bash文件的目录 有什么想法吗?谢谢!
for bashfile in files:
p = Popen(bashfile, cwd=dname) #dname is the current directory of the script
stdout, stderr = p.communicate()
我也看到了一个类似的问题,但是当试图以这种方式运行它时,它会说它找不到我的bash文件的目录
有什么想法吗?谢谢!:-)
编辑:
bashfile
具有完整路径。是否需要其输出将其直接发送到Python?如果不是,这可能是非常快速和简单的解决方案:
os.system("""here some code you use to execute in Terminal""")
您是否需要它的输出将其直接发送到Python?如果不是,这可能是非常快速和简单的解决方案:
os.system("""here some code you use to execute in Terminal""")
您是否需要它的输出将其直接发送到Python?如果不是,这可能是非常快速和简单的解决方案:
os.system("""here some code you use to execute in Terminal""")
您是否需要它的输出将其直接发送到Python?如果不是,这可能是非常快速和简单的解决方案:
os.system("""here some code you use to execute in Terminal""")
您也可以尝试这个方法,尽管它确实(并且无论您尝试什么)会影响目录的位置。就输出而言,这可能比
os
方法更简洁
import commands
cmd="bash ./script.sh"
commands.getoutput(cmd)
如果情况是您需要更改目录:
cmd = "/path/to/your/script/script.sh"
与使用操作系统相比,使用此方法的另一个好处是,您可以将输出分配给变量
fun_times = commands.getoutput("bash ./script.sh")
鉴于
not_fun_times = os.system("./script.sh")
将抛出一个错误
诸如此类。您也可以尝试此方法,尽管它确实(而且无论您尝试什么)会影响目录的位置。就输出而言,这可能比
os
方法更简洁
import commands
cmd="bash ./script.sh"
commands.getoutput(cmd)
如果情况是您需要更改目录:
cmd = "/path/to/your/script/script.sh"
与使用操作系统相比,使用此方法的另一个好处是,您可以将输出分配给变量
fun_times = commands.getoutput("bash ./script.sh")
鉴于
not_fun_times = os.system("./script.sh")
将抛出一个错误
诸如此类。您也可以尝试此方法,尽管它确实(而且无论您尝试什么)会影响目录的位置。就输出而言,这可能比
os
方法更简洁
import commands
cmd="bash ./script.sh"
commands.getoutput(cmd)
如果情况是您需要更改目录:
cmd = "/path/to/your/script/script.sh"
与使用操作系统相比,使用此方法的另一个好处是,您可以将输出分配给变量
fun_times = commands.getoutput("bash ./script.sh")
鉴于
not_fun_times = os.system("./script.sh")
将抛出一个错误
诸如此类。您也可以尝试此方法,尽管它确实(而且无论您尝试什么)会影响目录的位置。就输出而言,这可能比
os
方法更简洁
import commands
cmd="bash ./script.sh"
commands.getoutput(cmd)
如果情况是您需要更改目录:
cmd = "/path/to/your/script/script.sh"
与使用操作系统相比,使用此方法的另一个好处是,您可以将输出分配给变量
fun_times = commands.getoutput("bash ./script.sh")
鉴于
not_fun_times = os.system("./script.sh")
将抛出一个错误
等等。脚本位于何处,bash文件位于何处?bash文件位于脚本目录的一个子目录中。关键是他们在不同的地方。这有关系吗?如果
bashfile
只是脚本的名称(例如foo.sh
),请尝试指定脚本的路径/subdir/foo.sh
。能否提供完整的错误消息?脚本位于何处以及bash文件位于何处?bash文件位于脚本目录的一个子目录中。关键是他们在不同的地方。这有关系吗?如果bashfile
只是脚本的名称(例如foo.sh
),请尝试指定脚本的路径/subdir/foo.sh
。能否提供完整的错误消息?脚本位于何处以及bash文件位于何处?bash文件位于脚本目录的一个子目录中。关键是他们在不同的地方。这有关系吗?如果bashfile
只是脚本的名称(例如foo.sh
),请尝试指定脚本的路径/subdir/foo.sh
。能否提供完整的错误消息?脚本位于何处以及bash文件位于何处?bash文件位于脚本目录的一个子目录中。关键是他们在不同的地方。这有关系吗?如果bashfile
只是脚本的名称(例如foo.sh
),请尝试指定脚本的路径/subdir/foo.sh
。您可以提供完整的错误消息吗?您可以随时检查os.getcwd()
,甚至通过os.chdir(“/foo”)
将其更改为其他版本。如果您决定使用os.system,这个示例可能会很有用:非常感谢@andi!我在链接中给出的那个奇怪的解决方案完全把我弄糊涂了。。。非常感谢,现在可以工作了!:-)@Cheshie很乐意帮忙:-)@Cheshie:我不明白。如果Popen(bashfile,cwd=dname)
找不到bashfile
,那么os.system(bashfile)
如何工作呢?您可以随时检查os.getcwd()!我在链接中给出的那个奇怪的解决方案完全把我弄糊涂了。。。非常感谢,现在可以工作了!:-)@Cheshie很乐意帮忙:-)@Cheshie:我不明白。如果Popen(bashfile,cwd=dname)
找不到bashfile
,那么os.system(bashfile)
如何工作呢?您可以随时检查os.getcwd()!我在链接中给出的那个奇怪的解决方案完全把我弄糊涂了。。。非常感谢,现在可以工作了!:-)@Cheshie很乐意帮忙:-)@Cheshie:我不明白。如果Popen(bashfile,cwd=dname)
找不到bashfile
,那么os.system(bashfile)
如何工作呢?您可以随时检查os.getcwd()!我在链接中给出的那个奇怪的解决方案完全把我弄糊涂了。。。非常感谢,现在可以工作了!:-)@Cheshie很乐意帮忙:-)@Cheshie:我不明白。如何