我试图运行代码:
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)
答案 0 :(得分:4)
if f in f.startswith("20"):
无效。 startswith
会返回bool
in
个关键字trys,以检查bool
内的遏制情况。这仅适用于iterables(bool
不是)。你可能想要:
if f.startswith("20"):