为什么我在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'
供您参考,[:]
您的情况不需要。
如果我将 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'
供您参考,[:]
您的情况不需要。