0

我想对目录中的每个文件执行一个 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
4

1 回答 1

3

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

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

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

于 2012-12-14T03:34:23.447 回答