无法使用Python执行Shell脚本

时间:2018-07-11 13:13:43

标签: python linux shell

我正在尝试从我的python代码执行一个简单的sh文件。但是会引发语法错误。

这是我的video.sh代码

#!/bin/bash
google-chrome video.html

这是我的Python代码的一部分

import os
....
os.system(./video.sh)
.... 

终端抛出错误提示

File "app.py", line 14
os.system(./video.sh)
          ^
SyntaxError: invalid syntax

我也尝试过使用

执行它
import subprocess
....
subprocess.call[(./video.sh)]

但我仍然遇到相同的错误。有什么可能的解决方案?

2 个答案:

答案 0 :(得分:0)

正确的方法是使用subprocess库。

import subprocess
subprocess.call("./video.sh")

但是,我建议在询问之前使用搜索工具。也许您可以自己找到solution

答案 1 :(得分:0)

如果video.sh是可执行的

import subprocess

subprocess.call("./video.sh")

import subprocess

subprocess.call("./video.sh",shell=True)

但是使用shell = True可能会带来安全隐患

或者,如果video.sh无法执行

import os

os.system("sh video.sh")

或者您也可以遍历文件

from subprocess import call
with open('video.sh', 'rb') as file:
    script = file.read()
rc = call(script, shell=True)

您可以使用os.chmod('video.sh', 0o755)

使脚本可执行