2013-06-05 2 views
0

Я хочу запустить файл memfile, выполненный с помощью StringIO. Есть ли возможность сделать это? что-то вроде этого:running python Файлы StringIO

import StringIO 

memfile = StringIO.StringIO() 
memfile.write("print 'hello world'") 

#with diskfiles I would do: 
#os.system('python memfile') ? 
#subprocess.Popen('memfile', shell=True) 
memfile.close() 
+0

И что бы файл памяти должен быть запущен? Код Python, скрипты bash, исполняемые файлы для двоичных файлов? –

+0

Пример содержимого, записанного в «memfile», выглядит как код Python для меня – piokuc

+0

Я решил его с помощью exec memfile.getvalue(), и он работает с многострочным файлом, например содержимым memfile «a = 0 \ nb = 1 \ nprint a + b "thanks – user2455985

ответ

0

Это должно работать:

eval(memfile.open().read()) 

EDIT:

Оказывается exec необходим, поскольку eval принимает выражения только:

exec memfile 
+0

это не работает, потому что print - это выражение, а не выражение, но вы дали мне ключ, exec memfile.getvalue() работает, спасибо! – user2455985

Смежные вопросы