LINUX.ORG.RU

Python работа с файлами из exec()

 , , ,


0

1

Есть такой код:

final_t = ...

scope = {'__OFNAME': ofname,
         '__VERSION': VERSION
        }

exec(final_t, scope)
Проблема в том, что внутри final_t я пытаюсь писать в файл, но у меня не получается - файл пустой. Если же сделать так:
exec(final_t, globals())
Всё работает. Я так подозреваю, чтобы писать в файл мне не хватает некоторых переменных из глобальной области видимости. Помогите разобраться.



Последнее исправление: devpony (всего исправлений: 1)

#!/usr/bin/python

final_t = compile('''
out=open(__OFNAME, "wb")
out.write("%s\\n" % __VERSION)
for a in [1,2,3,4,5]:
  out.write("%i\\n" % a)
''', '<string>', 'exec')
scope={
  '__OFNAME': 'out.txt',
  '__VERSION': '1.0.0'
}
exec(final_t, scope)
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.