Python错误:' bool'不可迭代

时间:2016-06-29 21:36:14

标签: python

我试图运行代码:

import os
from os import listdir

for f in sorted(os.listdir("/path")):
    if f in f.startswith("20"):
        for f in sorted(os.listdir(f)):
            if f.endswith(".txt"):
                pass
            else:
                try:
                   os.system("/path/script.py %s" % f)
                except:
                   pass

我收到了这个错误:

Traceback (most recent call last):

 File "files_correct_phase.py", line 5, in <module>
    if f in f.startswith("20"): 
TypeError: argument of type 'bool' is not iterable
 code here

我在python提示符下运行它,它在第5行之后工作正常,但当我以

运行它时
python python_script.py

在命令行中,它给了我这个错误。我将不胜感激任何建议和/或帮助。

(Python版本2.7.6)

1 个答案:

答案 0 :(得分:4)

if f in f.startswith("20"):

无效。 startswith会返回bool in个关键字trys,以检查bool内的遏制情况。这仅适用于iterables(bool不是)。你可能想要:

if f.startswith("20"):