python shell子进程导入调用无效语法

时间:2012-12-14 03:28:08

标签: python shell call subprocess

我想对目录中的每个文件执行shell命令。我一直都有错误。

以下是代码:

import os
from subprocess import call

for dirname, dirnames, filenames in os.walk('.'):
    for filename in filenames:
        jpg = os.path.join(dirname, filename)
        call(["./curl_recognize.sh", jpg, jpg".txt", "-t txt"])

这是错误:

    call(["./curl_recognize.sh", jpg, jpg".txt", "-t txt"])
                                              ^
SyntaxError: invalid syntax

1 个答案:

答案 0 :(得分:3)

在“.txt”之前添加一个+。那就解决了。

+运算符在Python中连接字符串。当两个字符串都是常量时,你可以将它们放在一起(“foo”“bar”与“foo bar”相同),但如果其中一个是变量(或任何其他类型的表达式),必须使用+运算符。

代码中无关的问题:您可能还需要将“-t txt”更改为“-t”,“txt”,因为前者会将“-t txt”作为单个参数传递给程序,并且几乎所有参数解析程序都希望将flags(“ - t”)及其值(“txt”)作为单独的参数。