dsi*_*cha 2 python eval syntax-error
我正在尝试编写一个非常简单的Python实用程序供个人使用,它计算文本文件中为命令行指定的谓词为true的行数.这是代码:
import sys
pred = sys.argv[2]
if sys.argv[1] == "stdin" :
handle = sys.stdin
else :
handle = open(sys.argv[1])
result = 0
for line in handle :
eval('result += 1 if ' + pred + ' else 0')
print result
Run Code Online (Sandbox Code Playgroud)
当我使用它运行时python count.py myFile.txt "int(line) == 0",我收到以下错误:
File "c:/pycode/count.py", line 10, in <module>
eval('toAdd = 1 if ' + pred + ' else 0')
File "<string>", line 1
toAdd = 1 if int(line) == 0 else 0
Run Code Online (Sandbox Code Playgroud)
这看起来对我来说是完全有效的Python代码(虽然我之前从未使用过Python的eval,所以我不知道它的怪癖,如果有的话).请告诉我如何解决这个问题才能让它发挥作用.
| 归档时间: |
|
| 查看次数: |
3000 次 |
| 最近记录: |