python - 为什么 Python 的 eval() 拒绝这个多行字符串,我该如何修复它?

标签 python python-3.x metaprogramming eval

我正在尝试评估以下制表符缩进的字符串:

'''for index in range(10):
        os.system("echo " + str(index) + "")
'''

我得到,“出现错误:语法无效,第 1 行”

它在提示什么?我是否需要缩进以匹配 eval() 语句,或将其写入字符串文件或临时文件并执行它,或其他什么?

谢谢,

最佳答案

eval 评估类似 5+3

的东西

exec 执行类似 for ...

的东西
>>> eval("for x in range(3):print x")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1
    for x in range(3):print x
      ^
SyntaxError: invalid syntax
>>> exec("for x in range(3):print x")
0
1
2
>>> eval('5+3')
8

关于python - 为什么 Python 的 eval() 拒绝这个多行字符串,我该如何修复它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12698028/

相关文章:

python - 通过来自 Python 的 dbus 函数调用传递文件描述符(也称为调用 flatpak 的 HostCommand)

python - 下标问题(脚本实例化并从另一个脚本调用)仅运行被调用函数,而不是整个脚本

python-3.x - youtube API 从 channel : python 获取所有播放列表 ID

python - 如何提取特定标题后的 HTML 表格?

ruby - 在 Ruby 中使用方法名称从字符串调用方法

c++ - CRTP和重载返回类型推导

python - 有没有为python编写的化学数据库?

python - 对于 Pandas 上的每个循环,每个类别

python-3.x - python2 和 3 之间对于带前导零的数字的区别。

python - 堆栈跟踪中 Python 函数的名称