从python文件运行sh,语法错误

时间:2017-04-03 12:19:07

标签: python linux sh

我试图从python文件

运行sh-script

my_script.sh

#!/usr/bin/python

rm category.xml 

python文件

import subprocess
subprocess.call(["../my_script.sh"])

我得到了

    File "../my_scrypt.sh", line 3
    rm category.xml
              ^
SyntaxError: invalid syntax

如何解决这个问题?

4 个答案:

答案 0 :(得分:4)

你在一个不是Python的文件上使用了#!/usr/bin/python的shebang行。改变shebang线。

更好的是,当你可以调用Python函数做同样的事情时,不要调用shell脚本:

import os
os.remove("category.xml")

答案 1 :(得分:1)

查看您的shell代码。您使用python解释器#!/usr/bin/python并使用bash命令rm category.xml提供它。

修复了shell脚本:

#!/bin/bash

rm category.xml 

答案 2 :(得分:0)

如果您使用的是python 2x

使用命令模块:

import commands
print commands.getoutput('sh my_script.sh')

如果使用python 3x

使用子进程模块:

import subprocess
print(subprocess.getoutput('sh my_script.sh'))

答案 3 :(得分:0)

试试这个,

my_script.sh

#!/usr/bin/sh

rm category.xml

琐碎的方法:

>>> import subprocess
>>> subprocess.call(['./my_script.sh']) 
>>>