Python中如何安全使用eval函数进行动态代码执行?
- 内容介绍
- 文章标签
- 相关推荐
本文共计267个文字,预计阅读时间需要2分钟。
`eval()`函数可以将字符串+表达式+求值并返回计算结果。示例:javascripteval(2 + 3); // 返回 5
eval()函数可以将字符串 当成有效的表达式 来求值 并返回计算结果
示例:
# 基本的数学计算print(eval("1 + 1"))
# 字符串重复
print(eval("'*' * 10"))
# 将字符串转换成列表
print(type(eval("[1, 2, 3, 4, 5]")))
# 将字符串转换成字典
print(type(eval("{'name': 'xiaoming', 'age': 18}")))
执行代码后:
通过 eval()函数可以执行终端代码
__import__('os').system('ls')等价代码
import osos.system("终端命令")
- 执行成功,返回 0
- 执行失败,返回错误信息
示例:
input_str = input("请输入终端操作命令:")print(eval(input_str))
目录列表
创建目录
删除目录
本文共计267个文字,预计阅读时间需要2分钟。
`eval()`函数可以将字符串+表达式+求值并返回计算结果。示例:javascripteval(2 + 3); // 返回 5
eval()函数可以将字符串 当成有效的表达式 来求值 并返回计算结果
示例:
# 基本的数学计算print(eval("1 + 1"))
# 字符串重复
print(eval("'*' * 10"))
# 将字符串转换成列表
print(type(eval("[1, 2, 3, 4, 5]")))
# 将字符串转换成字典
print(type(eval("{'name': 'xiaoming', 'age': 18}")))
执行代码后:
通过 eval()函数可以执行终端代码
__import__('os').system('ls')等价代码
import osos.system("终端命令")
- 执行成功,返回 0
- 执行失败,返回错误信息
示例:
input_str = input("请输入终端操作命令:")print(eval(input_str))
目录列表
创建目录
删除目录

