为什么我在Python中使用exec语句得到这个"error"?

Why do I get this "error" when I use the exec statement in Python?

如果我将 exec 语句用于 for 语句,则会发生错误。

我的代码:

exec 'for i in A_'+aws_n+'_DATI[:]:'
exec '    a_'+aws_n+'_tt += {datetime.datetime.strptime(A_'+aws_n+'_DATI[n], "%Y%m%d%H%M")}'
exec '    n  += 1'

结果:

**Traceback (most recent call last):
  File "aws_merge.py", line 140, in <module>
    exec 'for i in A_'+aws_n+'_DATI[:]:'
  File "<string>", line 1
    for i in A_156_DATI[:]:
                          ^
SyntaxError: unexpected EOF while parsing**

但是,在上面的代码中,如果去掉exec语句,手动处理变量aws_n,那么运行就没有任何问题了。

for i in A_156_DATI[:]:
    print n
    n  += 1

为什么不是运行ning?

首先,永远不要使用exec()。这是完全没有必要的 dangerous。其次,exec() 执行一个完整的语句。 for i in A_156_DATI[:]:不是一个完整的语句,而是一个循环语句的一部分。如果你真的想做一件傻事,把循环的所有行放在一起:

exec 'for i in A_'+aws_n+'_DATI[:]: a_'+aws_n+'_tt += ...; n  += 1'

供您参考,[:]您的情况不需要。