lis = eval(open('a.txt','r').read())lis = eval(open('a.txt','r').read())EnchantnerПочему?
iBiZoNiX
eval = зло
>>> eval('subprocess.Popen(["rm", "-rf", "/"])')
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
eval('subprocess.Popen(["rm", "-rf", "/"])')
File "<string>", line 1, in <module>
NameError: name 'subprocess' is not definedEnchantnerа сам скрипт - это внутренний файл ?
Это неважно, просто во внешний файл может попасть что угодно от кого угодно. eval - зло
Enchantnerможно положить его в недоступный каталог
можно выставить права. На внешний файл тоже
Enchantnerно почему-то на python.org об этом не знают
eval - зло
Enchantnerдумаю, лучше использовать то, что для этого предназначено
Не проще ли использовать стандартизированные форматы во избежание?
py.user.nextЯ про это и говорю :) Но в 99% случаев лучше без него, чем с ним.
а eval всегда понимать, как исполнитель чего угодно
py.user.nextА что вы ждали? Надписи красными буквами “не использовать, брешь в безопасности”? Есть и те, кто goto юзает и не парится.
но почему-то на python.org об этом не знают