语法错误:无效语法Python

问题描述 投票:0回答:1

我有一个Python脚本。这只是我对 shell 脚本的转换,抱歉我只是这种语言的新手。错误是:

  File "chkrpm.py", line 19
    if(rc != 0):
    ^
SyntaxError: invalid syntax

我不知道出了什么问题。这是我的 shell 脚本

retval=0
for i in $(cat /var/tools/tools/newrpms.txt)
do
        ls /var/patchbundle/rpms/ | grep $i
        if [ $? != 0 ]
        then
                echo "$i NOT FOUND!"
                retval=255
        fi
done
exit $retval

这是我的 python 转换。只需关注错误方面。

import package, sys, os, subprocess

path = '/var/tools/tools/newrpms.txt'

newrpms = open(path, "w")
fds = newrpms.readline()
newrpms.close


def checkrc(rc):
                if(rc != 0):
                        sys.exit(rc)
cmd = package.Errata()
retval=0


for i in newrpms:
        rc = cmd.execute("ls /var/patchbundle/rpms/ | grep %newrpms ")
                if(rc != 0):
                    cmd.logprint ("%s not found !" % i)
                    retval = 255

checkrc(rc)

我的代码有什么问题。这就像我的 bash 脚本一样吗?

当我尝试遵循以下所有建议时,发现错误:

 File "chkrpm.py", line 19
    echo("%s not found !" % i)
    ^
SyntaxError: invalid syntax
python bash shell
1个回答
0
投票

您的错误消息显示“无效语法”,因为您的缩进错误

你的 for 循环看起来像:

for i in newrpms:
        rc = cmd.execute("ls /var/patchbundle/rpms/ | grep %newrpms ")
                if(rc != 0):
                    cmd.logprint ("%s not found !" % i)
                    retval = 255

当它应该看起来像:

for i in newrpms:
    rc = cmd.execute("ls /var/patchbundle/rpms/ | grep %newrpms ")
    if(rc != 0):
        cmd.logprint ("%s not found !" % i)
        etval = 255
© www.soinside.com 2019 - 2024. All rights reserved.